99 votos

¿Cómo enumerar todos los paquetes instalados y sus versiones en Python?

¿Hay alguna manera en Python de listar todos los paquetes instalados y sus versiones?

Sé que puedo entrar python/Lib/site-packages y ver qué archivos y directorios existen, pero encuentro esto muy incómodo. Lo que estoy buscando es algo que sea similar a npm list [1] .

160voto

jlafay Puntos 4670

Si tienes pip instalado y quieres ver qué paquetes han sido instalados con tus herramientas de instalación puedes simplemente llamar a esto:

pip freeze

También incluirá los números de versión de los paquetes instalados.

Actualización

pip ha sido actualizado para producir también la misma producción que pip freeze llamando:

pip list

Nota

La salida de pip list está formateado de forma diferente, así que si tienes algún script de shell que analiza la salida (tal vez para obtener el número de versión) de freeze y quieres cambiar tu guión para llamar list tendrás que cambiar tu código de análisis.

32voto

Ashwini Chaudhary Puntos 94431

help('modules') debería hacerlo por ti.

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

9voto

llazzaro Puntos 1392

Puedes intentarlo: Yolk

Para instalar la yolk, inténtalo:

easy_install yolk

Yolk es una herramienta de Python para obtener información sobre Python instalado y paquetes de consulta disponibles en PyPI (Python Package) Índice).

Puedes ver qué paquetes están activos, no activos o en desarrollo y le mostrará cuáles son las versiones más recientes disponibles consultando PyPI.

4voto

Andbdrew Puntos 4340

¡Sí! Deberías usar pip como tu gestor de paquetes en Python. http://pypi.Python.org/pypi/pip )

con los paquetes instalados de pip, puedes hacer un

pip freeze

y se listarán todos los paquetes instalados. Probablemente también deberías usar virtualenv y virtualenvwrapper . Cuando empiezas un nuevo proyecto, puedes hacer

mkvirtualenv my_new_project

y luego (dentro de ese virtualenv), hacer

pip install all_your_stuff

De esta manera, puedes workon my_new_project y luego pip freeze para ver qué paquetes se instalan para ese virtualenv/proyecto.

por ejemplo:

➜  ~  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)➜  ~  

o si tienes un paquete Python con un archivo requirements.pip,

mkvirtualenv my_awesome_project
pip install -r requirements.pip
pip freeze

hará el truco

2voto

chown Puntos 25161

Aquí hay una forma de hacerlo usando PYTHONPATH en lugar del camino absoluto de tu dir dir de libs de Python:

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
....

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X