簡體   English   中英

pip:安裝依賴項的依賴項

[英]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.pysetup()一部分,而不是在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM