Vous pouvez cd
a YOUR_ENV/lib/pythonxx/site-packages/
et y jeter un coup d'œil, mais y a-t-il des moyens pratiques ?
pip freeze
liste tous les paquets installés, y compris ceux de l'environnement système.
Vous pouvez cd
a YOUR_ENV/lib/pythonxx/site-packages/
et y jeter un coup d'œil, mais y a-t-il des moyens pratiques ?
pip freeze
liste tous les paquets installés, y compris ceux de l'environnement système.
Vous ne pouvez lister que les paquets dans le virtualenv
par pip freeze --local
ou pip list --local
. Cette option fonctionne indépendamment du fait que vous ayez des paquets de sites globaux visibles dans la section virtualenv
.
Notez que le fait de restreindre la virtualenv
ne pas utiliser les paquets de sites globaux n'est pas la réponse au problème, car la question est de savoir comment séparer les deux listes, et non comment contraindre notre flux de travail pour s'adapter aux limitations des outils.
Crédits pour le commentaire de @gvalkov aquí . Cf. également cette question .
Appel à pip
à l'intérieur d'un virtualenv devrait lister les paquets visibles/disponibles dans l'environnement isolé. Assurez-vous d'utiliser une version récente de virtualenv qui utilise l'option --no-site-packages
par défaut. De cette façon, le but de l'utilisation de virtualenv est de créer un environnement python sans accès aux paquets installés dans le système python.
Ensuite, assurez-vous d'utiliser pip
fournie dans le virtualenv ( YOUR_ENV/bin/pip
). Ou simplement activer le virtualenv (source YOUR_ENV/bin/activate
) comme un moyen pratique d'appeler les commandes appropriées pour l'interpréteur python ou pip
~/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
Ce qui est étrange dans ma réponse est que le paquet 'wsgiref' est visible dans le virtualenv. Il provient de mon système python. Actuellement, je ne sais pas pourquoi, mais peut-être que c'est différent sur votre système.
Dans Python3
pip list
Le venv vide est
Package Version
---------- -------
pip 19.2.3
setuptools 41.2.0
Pour créer un nouvel environnement
python3 -m venv your_foldername_here
Activez
cd your_foldername_here
source bin/activate
Désactiver
deactivate
Vous pouvez également vous placer dans le dossier et donner à l'environnement virtuel un nom/dossier (python3 -m venv nom_de_venv).
Venv est un sous-ensemble de virtualenv qui est livré avec Python après la version 3.3.
Si vous êtes toujours un peu confus au sujet virtualenv
vous ne saurez peut-être pas comment combiner les excellents conseils des réponses de Ioannis et Sascha. C'est-à-dire que c'est la commande de base dont vous avez besoin :
/YOUR_ENV/bin/pip freeze --local
Cela peut être facilement utilisé ailleurs. Par exemple, voici une réponse pratique et complète, adaptée à l'installation de tous les paquets locaux dans tous les environnements que vous configurez via virtualenvwrapper :
cd ${WORKON_HOME:-~/.virtualenvs}
for dir in *; do [ -d $dir ] && $dir/bin/pip freeze --local > /tmp/$dir.fl; done
more /tmp/*.fl
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.