Nic*_*mer 3 python dependencies pip
我想手动安装我正在编写的Python包的所有要求。为此,我requirements.txt逐行创建了文件并添加了依赖项:
$ cat requirements.txt
meshio
numpy
Run Code Online (Sandbox Code Playgroud)
跑步时
$ pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
可以正确安装这两个软件包,但我注意到meshio的依赖项不是(即,它中列出的任何东西requirements.txt)。不足为奇,点子应该怎么知道?
有没有一种机制可以通过pip安装整个依赖关系树?
您可能对pip-tools感兴趣,pip-tools是一个python软件包,可用于构建requirements.txt考虑所有基础依赖关系的文件。可以通过pip安装:
pip install --upgrade pip # pip-tools needs pip>=6.
pip install pip-tools
Run Code Online (Sandbox Code Playgroud)
安装后,您可以使用pip-compile命令生成需求文件。例如,假设您在Flask项目上工作。您将必须执行以下操作:
将以下行写入文件:
Flask
Run Code Online (Sandbox Code Playgroud)
运行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
Run Code Online (Sandbox Code Playgroud)
事实证明要安装依赖项,软件包需要列出其依赖项为
install_requires=[
'numpy',
'pyyaml'
],
Run Code Online (Sandbox Code Playgroud)
作为setup()in的一部分setup.py,而不是in requirements.txt。
| 归档时间: |
|
| 查看次数: |
6578 次 |
| 最近记录: |