381 votos

Encontrar todos los paquetes instalados con easy_install/pip?

Hay una manera de encontrar todos los Python PyPI paquetes que se han instalado con easy_install o pip? Quiero decir, excluyendo todo lo que fue/se instala con las distribuciones de herramientas (en este caso de apt-get en Debian).

367voto

Paul Woolcock Puntos 4028

pip freeze dará como resultado una lista de los paquetes instalados y sus versiones. También permite escribir esos paquetes a un archivo que luego puede usarse para configurar un nuevo entorno.

http://www.pip-installer.org/en/latest/index.html#freezing-requirements

246voto

knitatoms Puntos 876

A partir de la versión 1.3 de la pip, usted puede ahora utilizar pip list

Tiene algunas opciones útiles, incluyendo la posibilidad de mostrar los paquetes no actualizados. Aquí está la documentación: http://www.pip-installer.org/en/latest/usage.html#pip-list

24voto

barraponto Puntos 1423

Si Debian se comporta como recientes versiones de Ubuntu con respecto a pip install de destino predeterminado, es muy fácil: se instala en /usr/local/lib/ en lugar de /usr/lib (apt objetivo por defecto). Verificación http://askubuntu.com/questions/173323/how-do-i-detect-and-remove-python-packages-installed-via-pip/259747#259747

Yo soy un usuario de ArchLinux y como he experimentado con pip conocí a este mismo problema. He aquí cómo lo resuelto en el Arco.

find /usr/lib/python2.7/site-packages -maxdepth 2 -name __init__.py | xargs pacman -Qo | grep 'No package'

La clave aquí es /usr/lib/python2.7/site-packages, que es el directorio pip instala, YMMV. pacman -Qo es como el Arco de la pac kage hombre ager comprueba la titularidad del archivo. No package es parte de la vuelta se da cuando no hay paquete pertenece el fichero: error: No package owns $FILENAME. Difícil solución: estoy consultando sobre __init__.py porque pacman -Qo es un poco ignorante cuando se trata de directorios :(

Con el fin de hacerlo para otras distros, usted tiene que averiguar donde pip instala cosas (solo sudo pip install algo), cómo consultar la propiedad de un archivo (Debian método es dpkg -S) y cuál es la "ningún paquete dueño de la" ruta de retorno (Debian es no path found matching pattern). Los usuarios de Debian, ten cuidado: dpkg -S fallará si le das un enlace simbólico. Acaba primero de resolverla mediante realpath. Como esto:

find /usr/local/lib/python2.7/dist-packages -maxdepth 2 -name __init__.py | xargs realpath | xargs dpkg -S | grep 'no path found'

6voto

MarkHu Puntos 377

El de abajo es un poco lento, pero le da un formato agradable lista de paquetes que pip es consciente de. Es decir, no todos ellos se han instalado "por" pip, pero todos ellos deben ser capaces de actualizarse por el pip.

$ pip search . | egrep -B1 'INSTALLED|LATEST'

La razón es lento, es que enumera el contenido de la totalidad de pypi repo. He presentado un billete sugiriendo pip --list proporcionan una funcionalidad similar, pero de manera más eficiente.

Ejemplo de salida: (restringe la búsqueda a un subconjunto lugar de '.' para todos.)

$ pip search selenium | egrep -B1 'INSTALLED|LATEST'

selenium                  - Python bindings for Selenium
  INSTALLED: 2.24.0
  LATEST:    2.25.0
--
robotframework-selenium2library - Web testing library for Robot Framework
  INSTALLED: 1.0.1 (latest)
$

1voto

Obtener todos los archivo/carpeta de nombres en site-packages/ (y dist-packages/ si es que existe), y a usar el gestor de paquetes a la franja de los que se han instalado a través del paquete.

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