Python virtualenv ไม่เปิดใช้งานใน Windows 10 Cmder


3

ฉันใช้ Cmder บน windows 10 กับ Python 3.5 และ virtualenv บนแล็ปท็อปของฉันและคอมพิวเตอร์ที่ใช้งานได้ดี

ตอนนี้ฉันมีคอมพิวเตอร์เครื่องใหม่ที่ใช้ Windows 10, Python 3.5, virtualenv 15.0 และฉันสามารถเริ่มต้นสภาพแวดล้อมเสมือน python ด้วย

virtualenv env

และฉันได้รับไดเรกทอรี virtualenv แต่เมื่อฉันเรียกใช้:

env/Scripts/activate

ไม่มีอะไรเกิดขึ้น. ไม่มีข้อความแสดงข้อผิดพลาดและที่แย่ที่สุดคือไม่มีการแสดงว่ามีการเปิดใช้งานสภาพแวดล้อมหรือไม่ (เช่นสตริง "(env)" จะไม่ปรากฏขึ้นในเครื่องที่อยู่ถัดจากเส้นทาง

สิ่งที่แปลกคือฉันสามารถเปิดใช้งาน venv เมื่อใช้ cmd แบบเก่าและ "(env)" ปรากฏขึ้นในสถานี ไม่เพียง แต่เมื่อทำงานใน Cmder ความแปลกประหลาดอีกประการหนึ่ง (ซึ่งฉันไม่คิดว่าเกี่ยวข้อง แต่อาจจะเป็น) คือเมื่อฉันได้รับ virtualenv ที่ทำงานใน cmd ปกติมันบอกว่าคำสำคัญ "ยกเลิก" ไม่รู้จักเมื่อฉันพยายามปิดมัน

ฉันพบโพสต์นี้ (ด้านล่าง) ใน StackOverflow ซึ่งคล้ายกัน แต่ไม่ใช่ทั้งหมดที่มีประโยชน์เนื่องจากไม่มีคำตอบจริง ๆ และเป็นเรื่อง PowerShell

https://stackoverflow.com/questions/31769863/cant-activate-python-venv-in-windows-10

ความคิดใด ๆ

ขอบคุณ.

คำตอบ:


3

บันทึก คำตอบนี้ล้าสมัยและไม่จำเป็นต้องใช้เป็น cmder อีกต่อไป รองรับ conda / venv ตอนนี้ . อัปเดตการติดตั้ง cmder ของคุณหากไม่ได้ผลสำหรับคุณ

คำตอบเดิม (ล้าสมัย)

ฉันมีปัญหาที่คล้ายกันกับ conda env (และดูเหมือนว่าจะเหมือนกันสำหรับ vanilla virtualenv) Cmder บังคับให้พรอมต์ของตนเองและละเว้น PROMPT env var คุณต้องเพิ่มไฟล์ชื่อ [cmder dir] \ config [something] .lua ด้วยเนื้อหาต่อไปนี้

 -- Code based on https://github.com/cmderdev/cmder/issues/1056
 -- with modifications to make it actually work (https://github.com/cmderdev/cmder/issues/1056#issuecomment-237403714)
---
 -- Find out current conda/virtual envs
 -- @return {false|conda/virtual env name}
---

local clink_path_lua_file = clink.get_env('CMDER_ROOT')..'\\vendor\\clink-completions\\modules\\path.lua'
dofile(clink_path_lua_file)

function get_virtual_env(env_var)
    env_path = clink.get_env(env_var)
    if env_path then
        basen = exports.basename(env_path)
        return basen
    end
    return false
end

---
 -- add conda env name 
---
function conda_prompt_filter()
    -- add in conda env name
    local conda_env = get_virtual_env('CONDA_DEFAULT_ENV')
    if conda_env then
        clink.prompt.value = string.gsub(clink.prompt.value, "λ", "["..conda_env.."] λ")
    end
end

---
 -- add virtual env name 
---
function venv_prompt_filter()
    -- add in virtual env name
    local venv = get_virtual_env('VIRTUAL_ENV')
    if venv then
        clink.prompt.value = string.gsub(clink.prompt.value, "λ", "["..venv.."] λ")
    end
end

clink.prompt.register_filter(conda_prompt_filter, 20)
clink.prompt.register_filter(venv_prompt_filter, 20)

ดังนั้นคุณหมายถึงมันใช้งานได้กับ venv
Lutaaya Huzaifah Idris

มันทำ แต่คำตอบนี้ไม่จำเป็นอีกต่อไปเนื่องจาก cmder รองรับ conda / venv แล้ว github.com/cmderdev/cmder/pull/1070 อัปเดตการติดตั้ง cmder ของคุณหากไม่ได้ผลสำหรับคุณ
user2856
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.