Saya memiliki proyek dengan beberapa dependensi paket, dengan persyaratan utama yang tercantum requirements.txt
. Ketika saya menyebutnya pip freeze
mencetak paket yang saat ini diinstal sebagai daftar biasa. Saya lebih suka juga mendapatkan hubungan ketergantungan mereka, seperti ini:
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
Tujuannya adalah untuk mendeteksi ketergantungan setiap paket tertentu:
Werkzeug==0.8.3
Flask==0.9
Flask-Admin==1.0.6
Dan masukkan ini ke arus saya requirements.txt
. Misalnya, untuk masukan ini:
Flask==0.9
Flask-Admin==1.0.6
Werkzeug==0.8.3
Saya ingin mendapatkan:
Flask==0.9
Jinja2==2.7
Flask-Admin==1.0.6
Werkzeug==0.8.3
Apakah ada cara untuk menunjukkan dependensi paket pip yang diinstal?
python
pip
requirements.txt
tbicr
sumber
sumber
Jawaban:
Anda harus melihat
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
Itu tidak menghasilkan
requirements.txt
file seperti yang Anda tunjukkan secara langsung. Namun sumber (255 baris kode python) harus relatif mudah untuk dimodifikasi sesuai kebutuhan Anda, atau sebagai alternatif Anda dapat (seperti yang ditunjukkan @MERose di pipdeptree 0.3 README) digunakan:pipdeptree --freeze --warn silence | grep -P '^[\w0-9\-=.]+' > requirements.txt
Versi 0.5
pipdeptree
juga memungkinkan keluaran JSON dengan--json
opsi, yaitu penguraian mesin yang lebih mudah, dengan mengorbankan kurang terbaca.sumber
pipdeptree | grep -P '^\w+'
mencetak persyaratan.txt.bokeh
:( Paket ini memiliki organisasi persyaratan khusus sehingga pip tidak menampilkannya, tetapi conda menampilkannya.Peringatan: hanya py2 / meninggalkan perangkat lunak
yolk
dapat menampilkan dependensi untuk paket, asalkan merekasetuptools
datang dengan metadata yang mencakup informasi ketergantungan
$ yolk -d Theano Theano 0.6.0rc3 scipy>=0.7.2 numpy>=1.5.0
sumber
distutils
, yang tidak mendukung metadata paket)