Tengo un proyecto con múltiples dependencias de paquetes, los principales requisitos se enumeran en requirements.txt. Cuando lo llamo pip freezeimprime 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 - setuptoolsNo genera un
requirements.txtarchivo 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.txtLa versión 0.5
pipdeptreetambién permite la salida JSON con la--jsonopció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
yolkpuede mostrar las dependencias de los paquetes, siempre quesetuptoolsvino con metadatos que incluyen información de dependencia
$ yolk -d Theano Theano 0.6.0rc3 scipy>=0.7.2 numpy>=1.5.0fuente
distutils, que no admite metadatos de paquetes)