แสดงรายการ Virtualenv ทั้งหมด


148

ใน Virtualenvwrapper มีวิธีง่ายๆในการแสดงรายการ Virtualenv ทั้งหมดบนเครื่องของฉันหรือไม่?

(เช่นเดียวกับที่ไข่แดง -l แสดงรายการแพ็คเกจ python ทั้งหมดในสภาพแวดล้อมเสมือนปัจจุบัน?)

CLARIFICATION: "ls -la" ในไดเรกทอรี env ของฉันไม่นับ ฉันกำลังมองหาคำสั่งเฉพาะ Virtualenv หรือ Virtualenvwrapper


ที่เกี่ยวข้อง: stackoverflow.com/a/45386421/127971
michael

คำตอบ:


180

คุณสามารถใช้lsvirtualenvซึ่งคุณมีสองตัวเลือก "ยาว" หรือ "สั้น ๆ ":

ตัวเลือก "long" เป็นค่าเริ่มต้นโดยจะค้นหา hook ใด ๆ ที่คุณอาจมีเกี่ยวกับคำสั่งนี้และเรียกใช้งานซึ่งใช้เวลามากกว่า

"สั้น ๆ " เพียงแค่ใช้ชื่อที่มีประสิทธิภาพและพิมพ์ออกมา

การใช้งานสั้น ๆ :

$ lsvirtualenv -b

การใช้งานที่ยาวนาน:

$ lsvirtualenv -l

ถ้าคุณไม่มีตะขอหรือไม่รู้ด้วยซ้ำว่าฉันกำลังพูดถึงอะไรให้ใช้ "สั้น ๆ "



67

ในการแสดงรายการสภาพแวดล้อมเสมือนทั้งหมด (หากใช้การแจกจ่ายอนาคอนดา):

conda info --envs

หวังว่าคำตอบของฉันจะช่วยใครบางคน ...


64

เรียกใช้workonโดยไม่มีอาร์กิวเมนต์เพื่อแสดงรายการสภาพแวดล้อมที่พร้อมใช้งาน


1
workon(ไม่มีพารามิเตอร์) เป็นวิธีที่ดีที่สุด! เป็นคำสั่งของ Virtualenvwrapper lsvirtualenvเป็นคำสั่งที่เหมาะสมสำหรับ Virtualenv
cjadeveloper

7

หากคุณใช้virtualenvหรือ Python 3 ในตัวvenvคำตอบข้างต้นอาจไม่ทำงาน

ถ้าคุณอยู่ในลินุกซ์เพียงสคริปต์ที่เป็นปัจจุบันอยู่เสมอภายใน envlocateactivate

locate -b '\activate' | grep "/home"

สิ่งนี้จะดึงสภาพแวดล้อมเสมือน Python ทั้งหมดที่มีอยู่ในโฮมไดเร็กทอรีของคุณ

ดูการสาธิตที่นี่


1
นี่น่าจะเป็นคำตอบอันดับต้น ๆ เพราะมันใช้งานได้กับ ubuntu ทั้งสองอย่าง: virtualenvและvirtualenvwrapper.
Pe Dro

@PeDro เหตุใดการทำงานบน Ubuntu จึงควรเป็นเกณฑ์สำหรับคำตอบที่ดีที่สุด แล้วผู้คนใน Linux distros อื่น ๆ ล่ะ? แล้วผู้ใช้ Windows ล่ะ?
snakecharmerb

ไม่มันไม่ควร คำตอบระบุว่าสิ่งนี้ใช้ได้กับ Linux ฉันตรวจสอบความถูกต้องบน Ubuntu และโหวตให้ คำตอบที่ยอมรับใช้ไม่ได้กับทั้ง Virtualenv และ Virtualenvwrapper อันนี้ทำ อย่าเข้าใจผิด
Pe Dro

3

เพื่อแสดงรายการอัจฉริยะทั้งหมด

conda env list

เอาท์พุต:

# conda environments:
#
                         D:\Programs\Anaconda3
                         D:\Programs\Anaconda3\envs\notebook
                         D:\Programs\Anaconda3\envs\snakes
                         D:\Programs\Anaconda3\envs\snowflakes
base                  *  D:\Programs\Miniconda3
gluon                    D:\Programs\Miniconda3\envs\gluon

2
สิ่งนี้จะแสดงเฉพาะสภาพแวดล้อม conda ไม่ใช่สภาพแวดล้อมที่สร้างโดย pip
7bStan

3

สำหรับ conda สร้าง env ใช้:

conda info --envs  # or 
conda info -e      # or 
conda env list 

สำหรับ Virtualenvwrapper ที่สร้างการใช้งาน env:

lsvirtualenv

0

หากคุณมาที่นี่จาก Google พยายามค้นหาที่ที่คุณสร้างไว้ก่อนหน้านี้Virtualenvการติดตั้งสิ้นสุดลงที่ใดและเหตุใดจึงไม่มีคำสั่งให้ค้นหานี่คือการลดระดับลง

การออกแบบvirtualenvมีข้อบกพร่องพื้นฐานที่ไม่สามารถติดตามสภาพแวดล้อมที่สร้างขึ้นเองได้ บางคนไม่ได้ค่อนข้างในใจขวาของพวกเขาเมื่อพวกเขาสร้างขึ้นvirtualenvโดยไม่ต้องมีวิธีการพื้นฐานในการติดตามของสภาพแวดล้อมที่สร้างไว้แล้วและไม่แน่นอนพอดีเป็นเวลาและอายุมากที่สุดเมื่อต้องการ pip จำเป็นต้องมีการติดตั้งหลาย Giga ไบต์ซึ่งควรแน่นอนไม่ได้ไป ลงใน.virtualenvsไดเร็กทอรีย่อยที่คลุมเครือของ~ / homeของคุณคุณ

IMO, ไดเร็กทอรี Virtualenv ที่สร้างขึ้นควรถูกสร้างขึ้น$CWD และไฟล์ที่เรียกว่า~/.virtualenv(ในบ้าน ) ควรติดตามชื่อและเส้นทางของการสร้างนั้น ซึ่งเป็นเหตุผลที่ดีที่จะใช้Conda / Miniconda3แทนซึ่งดูเหมือนจะติดตามเรื่องนี้เป็นอย่างดี

ในฐานะที่ตอบนี่virtualenvwrapperเป็นวิธีเดียวที่จะติดตามเรื่องนี้คือการติดตั้งยังแพคเกจอื่นที่เรียกว่า หากคุณไม่ทำเช่นนั้นคุณจะต้องค้นหาไดเร็กทอรีที่สร้างขึ้นด้วยตัวเอง เห็นได้ชัดว่าหากคุณจำชื่อหรือสถานที่ที่สร้างขึ้นด้วย / ที่ไม่ได้คุณมักจะไม่พบสภาพแวดล้อมเสมือนของคุณอีกเลย ...

วิธีหนึ่งที่พยายามแก้ไขสถานการณ์ใน windows คือการใส่ฟังก์ชันต่อไปนี้ลงในโปรไฟล์ powershell ของคุณ:

# wrap virtualenv.exe and write last argument (presumably 
# your virtualenv name) to the file: $HOME/.virtualenv.
function ven { if( $args.count -eq 0) {Get-Content ~/.virtualenv } else {virtualenv.exe "$args"; Write-Output ("{0} `t{1}" -f $args[-1],$PWD) | Out-File -Append $HOME/.virtualenv }}

# List what's in the file or the directories under ~/.virtualenvs
function lsven { try {Get-Content ~/.virtualenv } catch {Get-ChildItem ~\.virtualenvs -Directory | Select-Object -Property Name } }

คำเตือน:สิ่งนี้จะเขียนถึง~\.virtualenv...


0

ฉันจะค้นหาชื่อสภาพแวดล้อมเสมือน Django ได้อย่างไรถ้าฉันลืม?. มันง่ายมากคุณสามารถค้นหาได้จากตำแหน่งต่อไปนี้หากคุณลืมชื่อ Django Virtual Environment ในระบบปฏิบัติการ Windows 10

c: \ Users <name> \ Envs <สภาพแวดล้อมเสมือน>

ป้อนคำอธิบายภาพที่นี่


-1

สิ่งนี้ใช้ได้กับWindows เท่านั้น :

หากคุณกำลังพยายามที่จะหา Envs ทั้งหมดสร้างขึ้นโดยใช้ virtualenv
ค้นหา"activate_this.py"หรือ"pip-selfcheck.json"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.