Soru Belirli bir virtualenv'de yüklü paketlerin listesini nasıl yapabilirim?


Yapabilirsin cd için YOUR_ENV/lib/pythonxx/site-packages/ ve bir göz var, ama uygun yollar var mı?

pip freeze Sistem ortamı dahil olmak üzere yüklü tüm paketleri listeleyin.


32
2018-04-12 02:04


Menşei




Cevaplar:


çağrı pip virtualenv içinde komut, izole ortamda görünür / kullanılabilir paketleri listelemelidir. Seçeneği kullanan yeni bir virtualenv sürümünü kullandığınızdan emin olun. --no-site-packages varsayılan olarak. Bu şekilde, virtualenv kullanmanın amacı, sistem pythonunda kurulu paketlere erişim olmaksızın bir python ortamı yaratmaktır.

Sonra, kullandığınızdan emin olun pip virtualenv içinde sağlanan komut (YOUR_ENV/bin/pip). Veya sadece virtualenv'i etkinleştirin (kaynak YOUR_ENV/bin/activate) python yorumlayıcısı veya pip için uygun komutları çağırmak için uygun bir yol olarak

~/Projects$ virtualenv --version
1.9.1

~/Projects$ virtualenv -p /usr/bin/python2.7 demoenv2.7
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in demoenv2.7/bin/python2.7
Also creating executable in demoenv2.7/bin/python
Installing setuptools............................done.
Installing pip...............done.

~/Projects$ cd demoenv2.7/
~/Projects/demoenv2.7$ bin/pip freeze
wsgiref==0.1.2

~/Projects/demoenv2.7$ bin/pip install commandlineapp
Downloading/unpacking commandlineapp
Downloading CommandLineApp-3.0.7.tar.gz (142kB): 142kB downloaded
Running setup.py egg_info for package commandlineapp
Installing collected packages: commandlineapp
Running setup.py install for commandlineapp
Successfully installed commandlineapp
Cleaning up...

~/Projects/demoenv2.7$ bin/pip freeze
CommandLineApp==3.0.7
wsgiref==0.1.2

Cevabımdaki garip olan şey, 'wsgiref' paketinin virtualenv içinde görünür olmasıdır. Onun sistem python dan. Şu anda nedenini bilmiyorum, ama belki sisteminizde farklıdır.


12
2018-04-12 10:34



Üzgünüm, benim hatam. Şu anki virtualenv ENV’imin kullanmadığını unuttum. --no-site-packages seçeneği. Sonra test etmek için başka bir ENV oluşturdum ve işe yaradı. Hatırlattığın için teşekkürler. - holys
Bu, aslında soruya cevap vermiyor, yani: site paketleri ile bir virtualenv verildiğinde, yalnızca virtualenv'de yüklü olanları nasıl filtreleyeceğiz. - Ioannis Filippidis
Bu cevap genellikle kullanan biri için yeterliydi --no-site-packages. Bu bilginin verildiği zaman --localbayrak gerekli değildi. Ama cevabınız kesinlikle bu sorunun okuyucularına değer katar. - Sascha Gottfried


Yalnızca paketleri listeleyebilirsiniz virtualenv tarafından pip freeze --local veya pip list --local. Bu seçenek, genel site paketlerinin görünür durumda olup olmadığına bakılmaksızın çalışır. virtualenv.

Kısıtlamayı unutmayın virtualenv Global site paketlerini kullanmamak, sorunun cevabı değildir çünkü soru, iş akışımızı araçların sınırlamalarına uymak için nasıl kısıtlayacağımız değil, iki listeyi nasıl ayıracağımızdır.

@ Gvalkov'un yorumuna verilen krediler İşte. Krş Ayrıca bu konu.


29
2017-07-09 18:16



Teşekkürler! Büyük kavrayışınızı, Sascha'nın kaydettiği şeyin özüyle birleştirmeyi denedim, cevabımda. - nealmcb
Bu, kesinlikle sanalenv kullanıcılarının sistem paketlerini izole etme seçeneğinin farkında olmamasına yardımcı olan pip komutudur. Bu seçeneğin farkında olmanızı sağladığınız için, bu konuyla ilgili herhangi bir dokümanı okurken hiç bu konuya hiç katılmadım. - Sascha Gottfried
Teşekkürler ... Onun cevabı ve büyük açıklama. Cevabını gerçekten takdir et. - Doogle


virtualenv içindeki yüklü paketleri listeleyebilir

Aşama 1:

çalışma adı

Adım 2:

pip dondurmak

yüklü tüm paketleri ve yüklü paketleri ve versiyonları gösterecektir.


10
2018-04-22 15:47





Eğer hala biraz kafanız karıştıysa virtualenv Büyük ipuçlarını Ioannis ve Sascha'nın cevaplarından nasıl birleştireceğinizi öğrenemeyebilirsiniz. Yani Bu, ihtiyacınız olan temel komuttur:

/YOUR_ENV/bin/pip freeze --local

Bu başka yerlerde kolayca kullanılabilir. Örneğin. sanalenvwrapper ile kurduğunuz tüm ortamlarda kurulu tüm yerel paketleri almak için uygun, uygun ve eksiksiz bir cevap:

cd ${WORKON_HOME:-~/.virtualenvs}
for dir in *; do [ -d $dir ] && $dir/bin/pip freeze --local >  /tmp/$dir.fl; done
more /tmp/*.fl

2
2018-05-09 23:48



Bu, kesinlikle sanalenv kullanıcılarının sistem paketlerini izole etme seçeneğinin farkında olmamasına yardımcı olan pip komutudur. Bu seçeneğin farkında olmanızı sağladığınız için, bu konuyla ilgili herhangi bir dokümanı okurken hiç bu konuya hiç katılmadım. - Sascha Gottfried


Benim durumumda şişe versiyonu sadece görebildiğim için gitmem gerekti C: \ Kullanıcılar \\ AppData \ Yerel \ flask \ venv \ Scripts> pip dondurulan - yerel


0
2018-05-21 17:20