[英]pip: install dependencies of dependencies
我想手動安裝我正在編寫的Python包的所有要求。 為此,我創建了文件requirements.txt
並逐行添加了依賴項:
$ cat requirements.txt
meshio
numpy
跑步時
$ pip install -r requirements.txt
這兩個軟件包安裝正常,但我注意到meshio的依賴關系不是(即,其requirements.txt
列出的內容)。 不足為奇,pip應該怎么知道?
是否有使用pip安裝整個依賴關系樹的機制?
您可能對pip-tools感興趣,這是一個python包,可用於構建一個考慮所有底層依賴項的requirements.txt
文件。 它可以通過pip安裝:
pip install --upgrade pip # pip-tools needs pip>=6.
pip install pip-tools
安裝后,您可以使用pip-compile
命令生成需求文件。 例如,假設您正在使用Flask項目。 您必須執行以下操作:
將以下行寫入文件:
Flask
運行pip-compile <your-file>
。 它將生成您的requirements.txt,其中包含所有依賴項。 您可以重新運行pip-compile
來更新軟件包。 您的輸出文件將如下所示:
#
# This file is autogenerated by pip-compile
# Make changes in requirements.in, then run this to update:
#
# pip-compile <your-file>
#
flask==0.10.1
itsdangerous==0.24 # via flask
jinja2==2.7.3 # via flask
markupsafe==0.23 # via jinja2
werkzeug==0.10.4 # via flask
事實證明要安裝的依賴項,包需要列出其依賴項
install_requires=[
'numpy',
'pyyaml'
],
作為setup.py
中setup()
一部分,而不是在requirements.txt
。
我不確定這是否是你需要的。 但這就是我解決這個問題的方法。 我為每個python項目創建了一個虛擬環境 。
cd my_project_folder
virtualenv venv # choose the python interpreter you need ;)
source venv/bin/activate
然后我安裝項目所需的所有包。
pip install <what ever packages you need>
如果您需要創建requirements.txt,則可以使用此命令
pip freeze > requirements.txt # including the installed version of each package
要離開虛擬環境,只需鍵入deactivate
。 希望這可以幫助你......
這也在這里詳細描述
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.