Tengo un proyecto con múltiples dependencias de paquetes, los principales requisitos se enumeran en requirements.txt
. Cuando lo llamo pip freeze
imprime los paquetes instalados actualmente como una lista simple. Preferiría también obtener sus relaciones de dependencia, algo como esto:
Flask==0.9
Jinja2==2.7
Werkzeug==0.8.3
Jinja2==2.7
Werkzeug==0.8.3
Flask-Admin==1.0.6
Flask==0.9
Jinja2==2.7
Werkzeug==0.8.3
El objetivo es detectar las dependencias de cada paquete específico:
Werkzeug==0.8.3
Flask==0.9
Flask-Admin==1.0.6
E inserte estos en mi corriente requirements.txt
. Por ejemplo, para esta entrada:
Flask==0.9
Flask-Admin==1.0.6
Werkzeug==0.8.3
Me gustaría conseguir:
Flask==0.9
Jinja2==2.7
Flask-Admin==1.0.6
Werkzeug==0.8.3
¿Hay alguna forma de mostrar las dependencias de los paquetes pip instalados?
python
pip
requirements.txt
tbicr
fuente
fuente
Respuestas:
Deberías echarle un vistazo a
pipdeptree
:$ pip install pipdeptree $ pipdeptree -fl Warning!!! Cyclic dependencies found: ------------------------------------------------------------------------ xlwt==0.7.5 ruamel.ext.rtf==0.1.1 xlrd==0.9.3 openpyxl==2.0.4 - jdcal==1.0 pymongo==2.7.1 reportlab==3.1.8 - Pillow==2.5.1 - pip - setuptools
No genera un
requirements.txt
archivo como indicaste directamente. Sin embargo, la fuente (255 líneas de código Python) debería ser relativamente fácil de modificar según sus necesidades, o alternativamente puede (como indicó @MERose en el README de pipdeptree 0.3) usar:pipdeptree --freeze --warn silence | grep -P '^[\w0-9\-=.]+' > requirements.txt
La versión 0.5
pipdeptree
también permite la salida JSON con la--json
opción, que es más fácilmente analizable por máquina, a expensas de ser menos legible.fuente
pipdeptree | grep -P '^\w+'
imprime un requirements.txt.bokeh
:( Este paquete tiene una organización específica de requisitos, por lo que pip no los muestra, pero conda sí.Advertencia: solo py2 / abandonware
yolk
puede mostrar las dependencias de los paquetes, siempre quesetuptools
vino con metadatos que incluyen información de dependencia
$ yolk -d Theano Theano 0.6.0rc3 scipy>=0.7.2 numpy>=1.5.0
fuente
distutils
, que no admite metadatos de paquetes)