python - mac - ¿Hay alguna manera de mostrar los árboles de dependencia para los paquetes de pip?
install pip linux (2)
Tengo un proyecto con múltiples dependencias de paquetes, los requisitos principales se enumeran en requirements.txt
. Cuando llamo a pip freeze
, imprime los paquetes actualmente instalados 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 insértelos en mis requirements.txt
actuales.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 manera de mostrar las dependencias de los paquetes pip instalados?
Debes 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 archivo Requirements.txt como se indica directamente. Sin embargo, la fuente (255 líneas de código de Python) debería ser relativamente fácil de modificar según sus necesidades, o alternativamente, puede (como lo indica @MERose está en el archivo README de pipdeptree 0.3):
pipdeptree --freeze --nowarn | grep -P ''^[/w0-9/-=.]+'' > requirements.txt
La versión 0.5 de pipdeptree
también permite la salida JSON con la opción --json
, que es más fácil de usar en la máquina, a costa de ser menos legible.
yolk
puede mostrar las dependencias de los paquetes, siempre que
- fueron instalados vía
setuptools
vino con metadatos que incluyen información de dependencia
$ yolk -d Theano Theano 0.6.0rc3 scipy>=0.7.2 numpy>=1.5.0