Existe-t-il un moyen en Python de répertorier tous les packages installés et leurs versions?
Je sais que je peux aller à l'intérieur python/Lib/site-packages
et voir quels fichiers et répertoires existent, mais je trouve cela très gênant. Ce que je recherche quelque chose qui est similaire à npm list
ie npm-ls .
Réponses:
Si vous avez pip install et que vous souhaitez voir quels packages ont été installés avec vos outils d'installation, vous pouvez simplement appeler ceci:
Il inclura également les numéros de version des packages installés.
Mettre à jour
pip a été mis à jour pour produire également la même sortie qu'en
pip freeze
appelant:Remarque
La sortie de
pip list
est formatée différemment, donc si vous avez un script shell qui analyse la sortie (peut-être pour saisir le numéro de version) defreeze
et que vous voulez changer votre script pour appelerlist
, vous devrez changer votre code d'analyse.la source
pip list
comme alias pourpip freeze
. C'est intuitif à écrirepip freeze > requirements.txt
, mais paspip freeze
.pip list
: pip-installer.org/en/latest/usage.html#pip-list - donc c'est en fait quelque chose qui arrive déjà!help('modules')
devrait le faire pour vous.dans IPython:
la source
Package.version()
oupackage.__version__
oupackage.ver
ou un certain nombre d'autres possibilitésSi vous souhaitez obtenir des informations sur vos distributions python installées et que vous ne souhaitez pas utiliser votre console ou terminal cmd pour cela, mais plutôt via du code python, vous pouvez utiliser le code suivant (testé avec python 3.4):
L'
pip.get_installed_distributions(local_only=True)
appel de fonction renvoie un itérable et en raison de la boucle for et de la fonction d'impression, les éléments contenus dans l'itérable sont imprimés séparés par des caractères de nouvelle ligne (\n
). Le résultat ressemblera (en fonction de vos distributions installées) à ceci:la source
pkg_resources
? AFAICR dont cela fait partiesetuptools
. Nonpip
. Peut - on en toute sécurité suppose quesetuptools
sera toujours disponible EHEN uniquement en fonctionpip
?Vous pouvez essayer: Yolk
Pour installer Yolk, essayez:
la source
Pour l'exécuter dans les versions ultérieures de pip (testé sur
pip==10.0.1
), utilisez ce qui suit:la source
pydoc pip._internal
mais je ne peux pas l'atteindre dessoushelp(pip._internal)
, pip .__ builtins_ etc. Le guide de référence de pip est également vide._internal
. Il semble que la fonctionnalité ne soit pas officiellement exposée. Vous devez donc gérer cela avec précaution!depuis la ligne de commande
peut être utilisé pour afficher tous les modules et pour des modules spécifiques
Pour Linux ci-dessous fonctionnera
la source
-bash: syntax error near unexpected token `('
Oui! vous devriez utiliser pip comme gestionnaire de paquets python ( http://pypi.python.org/pypi/pip )
avec les packages installés par pip, vous pouvez faire un
et il listera tous les packages installés. Vous devriez probablement également utiliser virtualenv et virtualenvwrapper . Lorsque vous démarrez un nouveau projet, vous pouvez faire
et puis (dans ce virtualenv), faites
De cette façon, vous pouvez
workon my_new_project
puispip freeze
voir quels paquets sont installés pour que virtualenv / projet.par exemple:
ou si vous avez un package python avec un fichier requirements.pip,
fera l'affaire
la source
pip
de cette manière!virtualenv
des packages de site global, vous devez ensuite utiliserpip list --local
.virtualenv
. Je n'ai connaissance d'aucune raison pour ne pas les utiliser, et personne ne vous empêche de vous limiter à isolévirtualenv
si vous préférez.Ma prise:
la source
Voici un moyen de le faire en utilisant
PYTHONPATH
au lieu du chemin absolu de votre répertoire python libs:la source
Si vous utilisez anaconda:
le fera! Voir: https://conda.io/docs/_downloads/conda-cheatsheet.pdf
la source
Si cela est nécessaire pour exécuter à partir de python, vous pouvez simplement appeler un sous-processus
la source