Existe-t-il un moyen dans Python de répertorier tous les packages installés et leurs versions?
Je sais que je peux aller dans python/Lib/site-packages
et voir quels fichiers et répertoires existent, mais je trouve cela très gênant. Ce que je recherche, ressemble à npm list
i.e. npm-ls .
Si vous avez pip installer et que vous voulez voir quels paquets ont été installés avec vos outils d'installation, vous pouvez simplement appeler ceci:
pip freeze
Il inclura également les numéros de version des packages installés.
Mettre à jour
pip a été mis à jour pour produire également le même résultat que pip freeze
en appelant:
pip list
Remarque
La sortie de pip list
est formatée différemment. Par conséquent, si vous avez un script Shell qui analyse la sortie (peut-être pour saisir le numéro de version) de freeze
et que vous souhaitez modifier votre script pour appeler list
, vous devez modifier votre code d'analyse.
help('modules')
devrait le faire pour vous.
en IPython:
In [1]: import #import press-TAB
Display all 631 possibilities? (y or n)
ANSI audiodev markupbase
AptUrl audioop markupsafe
ArgImagePlugin avahi marshal
BaseHTTPServer axi math
Bastion base64 md5
BdfFontFile bdb mhlib
BmpImagePlugin binascii mimetools
BufrStubImagePlugin binhex mimetypes
CDDB bisect mimify
CDROM bonobo mmap
CGIHTTPServer brlapi mmkeys
Canvas bsddb modulefinder
CommandNotFound butterfly multifile
ConfigParser bz2 multiprocessing
ContainerIO cPickle musicbrainz2
Cookie cProfile mutagen
Crypto cStringIO mutex
CurImagePlugin cairo mx
DLFCN calendar netrc
DcxImagePlugin cdrom new
Dialog cgi nis
DiscID cgitb nntplib
DistUpgrade checkbox ntpath
Si vous souhaitez obtenir des informations sur vos distributions Python installées et 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):
import pip #needed to use the pip functions
for i in pip.get_installed_distributions(local_only=True):
print(i)
L'appel de fonction pip.get_installed_distributions(local_only=True)
renvoie un élément itérable et, en raison de la boucle for et de la fonction d'impression, les éléments contenus dans cet élément sont imprimées, séparés par des caractères de nouvelle ligne (\n
) ..__ ressemble à ceci:
cycler 0.9.0
decorator 4.0.4
ipykernel 4.1.0
ipython 4.0.0
ipython-genutils 0.1.0
ipywidgets 4.0.3
Jinja2 2.8
jsonschema 2.5.1
jupyter 1.0.0
jupyter-client 4.1.1
#... and so on...
Vous pouvez essayer: Jaune
Pour installer le jaune, essayez:
easy_install yolk
Yolk est un outil Python permettant d’obtenir des informations sur l’installation de Python packages et requêtes disponibles sur PyPI (Paquet Python Index).
Vous pouvez voir quels packages sont actifs, non actifs ou en développement mode et vous montrer quelles sont les versions les plus récentes disponibles en interrogeant PyPI.
depuis la ligne de commande
python -c help('modules')
peut être utilisé pour voir tous les modules, et pour des modules spécifiques
python -c help('os')
Pour Linux ci-dessous fonctionnera
python -c "help('os')"
oui! vous devriez utiliser pip en tant que gestionnaire de paquets python ( http://pypi.python.org/pypi/pip )
avec les paquets installés, vous pouvez faire une
pip freeze
et il listera tous les paquets installés. Vous devriez probablement aussi utiliser virtualenv et virtualenvwrapper . Lorsque vous démarrez un nouveau projet, vous pouvez faire
mkvirtualenv my_new_project
et ensuite (à l'intérieur de ce virtualenv), faites
pip install all_your_stuff
De cette façon, vous pouvez workon my_new_project
et ensuite pip freeze
pour voir quels packages sont installés pour ce virtualenv/projet.
par exemple:
➜ ~ mkvirtualenv yo_dude
New python executable in yo_dude/bin/python
Installing setuptools............done.
Installing pip...............done.
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/get_env_details
(yo_dude)➜ ~ pip install Django
Downloading/unpacking Django
Downloading Django-1.4.1.tar.gz (7.7Mb): 7.7Mb downloaded
Running setup.py Egg_info for package Django
Installing collected packages: Django
Running setup.py install for Django
changing mode of build/scripts-2.7/Django-admin.py from 644 to 755
changing mode of /Users/aaylward/dev/virtualenvs/yo_dude/bin/Django-admin.py to 755
Successfully installed Django
Cleaning up...
(yo_dude)➜ ~ pip freeze
Django==1.4.1
wsgiref==0.1.2
(yo_dude)➜ ~
ou si vous avez un paquet Python avec un fichier Requirements.pip,
mkvirtualenv my_awesome_project
pip install -r requirements.pip
pip freeze
fera l'affaire
Pour exécuter cela dans les versions ultérieures de pip (testé sur pip==10.0.1
), utilisez les éléments suivants:
from pip._internal.operations.freeze import freeze
for requirement in freeze(local_only=True):
print(requirement)
Voici un moyen de le faire en utilisant PYTHONPATH
à la place du chemin absolu de votre répertoire python libs:
for d in `echo "${PYTHONPATH}" | tr ':' '\n'`; do ls "${d}"; done
[ 10:43 Jonathan@MacBookPro-2 ~/xCode/Projects/Python for iOS/trunk/Python for iOS/Python for iOS ]$ for d in `echo "$PYTHONPATH" | tr ':' '\n'`; do ls "${d}"; done
libpython2.7.dylib pkgconfig python2.7
BaseHTTPServer.py _pyio.pyc cgitb.pyo doctest.pyo htmlentitydefs.pyc mimetools.pyc plat-mac runpy.py stringold.pyc traceback.pyo
BaseHTTPServer.pyc _pyio.pyo chunk.py dumbdbm.py htmlentitydefs.pyo mimetools.pyo platform.py runpy.pyc stringold.pyo tty.py
BaseHTTPServer.pyo _strptime.py chunk.pyc dumbdbm.pyc htmllib.py mimetypes.py platform.pyc runpy.pyo stringprep.py tty.pyc
Bastion.py _strptime.pyc chunk.pyo dumbdbm.pyo htmllib.pyc mimetypes.pyc platform.pyo sched.py stringprep.pyc tty.pyo
Bastion.pyc _strptime.pyo cmd.py
....
Ma prise
#!/usr/bin/env python3
import pkg_resources
dists = [str(d).replace(" ","==") for d in pkg_resources.working_set]
for i in dists:
print(i)
Si vous utilisez l'anaconda:
conda list
le fera! Voir: https://conda.io/docs/_downloads/conda-cheatsheet.pdf