Cantumkan semua virtualenv


148

Di virtualenvwrapper, apakah ada cara sederhana untuk mencantumkan semua virtualenv di mesin saya?

(seperti yang dilakukan yolk -l untuk mencantumkan semua paket python di lingkungan virtual saat ini?)

KLARIFIKASI: "ls -la" di direktori env saya tidak dihitung. Saya mencari perintah khusus virtualenv atau virtualenvwrapper.


Jawaban:


180

Anda dapat menggunakan lsvirtualenv , di mana Anda memiliki dua opsi "panjang" atau "singkat":

Opsi "long" adalah yang default, ini mencari hook apa pun yang mungkin Anda miliki di sekitar perintah ini dan menjalankannya, yang membutuhkan lebih banyak waktu.

"brief", ambil saja nama virtualenvs dan cetak.

penggunaan singkat:

$ lsvirtualenv -b

penggunaan lama:

$ lsvirtualenv -l

jika Anda tidak memiliki kaitan, atau bahkan tidak tahu apa yang saya bicarakan, cukup gunakan "singkat".



67

Untuk mencantumkan semua lingkungan virtual (jika menggunakan distribusi anaconda):

conda info --envs

Semoga jawaban saya membantu seseorang ...


64

Jalankan workon tanpa argumen ke daftar lingkungan yang tersedia.


1
workon(tanpa parameter) adalah cara terbaik! Ini adalah perintah Virtualenvwrapper. lsvirtualenvadalah perintah yang tepat untuk Virtualenv.
cjadeveloper

7

Jika Anda menggunakan virtualenvatau Python 3 yang dibangun di venvjawaban di atas mungkin tidak berfungsi.

Jika Anda berada di Linux, hanya locatedengan activatescript yang selalu hadir dalam env a.

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

Ini akan mengambil semua lingkungan virtual Python yang ada di dalam direktori home Anda.

Lihat Demo Di Sini


1
Ini harus menjadi jawaban teratas karena berfungsi di ubuntu dengan keduanya: virtualenvserta virtualenvwrapper.
Pe Dro

@PeDro Mengapa bekerja di Ubuntu menjadi kriteria untuk jawaban terbaik? Bagaimana dengan orang-orang di distro Linux lain? Bagaimana dengan pengguna Windows?
snakecharmerb

Tidak, seharusnya tidak. Jawabannya menyebutkan bahwa ini berfungsi untuk Linux. Saya memvalidasinya di Ubuntu dan memilihnya. Jawaban yang diterima tidak berfungsi untuk keduanya: virtualenv dan virtualenvwrapper. Yang ini bisa. Tolong jangan salah
Pe Dro

3

Untuk mencantumkan semua virtualenv

conda env list

Keluaran:

# 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
Ini hanya akan mencantumkan lingkungan conda, bukan yang dihasilkan oleh pip.
7bStan

3

Untuk conda dibuat env gunakan:

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

Untuk virtualenvwrapper, gunakan env:

lsvirtualenv

0

Jika Anda datang ke sini dari Google, mencoba menemukan di mana instalasi virtualenv yang Anda buat sebelumnya berakhir, dan mengapa tidak ada perintah untuk menemukannya, inilah penjelasannya.

Desain virtualenvmemiliki kelemahan mendasar karena tidak dapat melacak lingkungan yang dibuatnya sendiri. Seseorang tidak waras ketika mereka membuat virtualenvtanpa memiliki cara dasar untuk melacak lingkungan yang sudah dibuat, dan tentu saja tidak cocok untuk waktu dan usia ketika sebagian besar persyaratan pip memerlukan instalasi multi-giga-byte, yang tentunya tidak boleh berjalan ke beberapa .virtualenvssub-direktori yang tidak jelas dari ~ / home Anda .

IMO, direktori virtualenv yang dibuat harus dibuat $CWD dan sebuah file bernama ~/.virtualenv(di rumah ) harus melacak nama dan jalur pembuatan itu. Yang merupakan alasan bagus untuk menggunakan Conda / Miniconda3 sebagai gantinya, yang tampaknya melacak hal ini dengan baik.

Seperti yang dijawab di sini , satu-satunya cara untuk melacak ini adalah dengan menginstal paket lain yang disebut virtualenvwrapper. Jika Anda tidak melakukannya, Anda harus mencari direktori yang dibuat sendiri. Jelas, jika Anda tidak ingat nama atau lokasi pembuatannya dengan / di, kemungkinan besar Anda tidak akan pernah menemukan lingkungan virtual Anda lagi ...

Salah satu upaya untuk memperbaiki situasi di windows, adalah dengan memasukkan fungsi berikut ke dalam profil PowerShell Anda:

# 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 } }

PERINGATAN: Ini akan menulis ke ~\.virtualenv...


0

Bagaimana saya menemukan nama lingkungan maya Django jika saya lupa ?. Ini sangat sederhana, Anda dapat menemukan dari lokasi berikut, jika Anda lupa nama Lingkungan Virtual Django pada Sistem Operasi Windows 10.

c: \ Users <name> \ Envs <Virtual Environments>

masukkan deskripsi gambar di sini


-1

Ini hanya berfungsi di Windows :

Jika Anda mencoba menemukan semua env yang dibuat menggunakan
pencarian virtualenv untuk " activ_this.py" atau "pip-selfcheck.json"

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.