python使用 requirements.txt 管理所需的包

使用 requirements.txt 管理所需的包

若要与其他人共享项目、使用生成系统,或打算将项目复制到需要在其中还原环境的其他任何位置,必须指定项目需要的外部包。 建议的方法是使用 requirements.txt 文件 (readthedocs.org),文件中包含安装相关包所需版本的 pip 命令列表。 最常见的命令是 pip freeze > requirements.txt,它将环境的当前包列表记录到 requirements.txt 中。

从技术上讲,任何文件名都可用于跟踪要求(通过安装包时使用 -r <full path to file>),但 Visual Studio 提供针对 requirements.txt 的特定支持:

  • 如果已加载包含 requirements.txt 的项目,且想要安装该文件列出的所有包,请展开“解决方案资源管理器”中的“Python 环境”节点,然后右键单击环境节点并选择“从 requirements.txt 安装”:

    从 requirements.txt 安装

  • 如果环境中已安装所有必需的包,可在“解决方案资源管理器”中右键单击该环境,并选择“生成 requirements.txt”以创建必需的文件。 如果文件已存在,会出现有关如何进行更新的提示:

    更新 requirements.txt 选项

    • “替换整个文件”将删除存在的所有项、注释和选项。
    • “刷新现有条目”会检测包的要求并更新版本说明符,匹配当前安装的版本。
    • “更新并添加项”将刷新找到的任何要求,并将所有其他包添加到文件末尾。

因为 requirements.txt 文件的目的是冻结环境的要求,因此所有已安装的包都采用精确的版本编写。 使用精确的版本可确保轻松地在其他计算机上重现环境。 即使采用一个版本范围(作为另一个包的依赖项)或使用安装程序而非 pip 安装了包,也会包含这些包。

如果包不能通过 pip 安装,且它出现在 requirements.txt 文件中,则整个安装会失败。 在这种情况下,手动编辑文件以排除此包或使用 pip 的选项来指包的可安装版本。 例如,你可能更喜欢使用 pip wheel 来编译依赖项,并向 requirements.txt 添加 --find-links <path> 选项:

output
C:\Project>pip wheel azure
Downloading/unpacking azure
    Running setup.py (path:C:\Project\env\build\azure\setup.py) egg_info for package azure

Building wheels for collected packages: azure
    Running setup.py bdist_wheel for azure
    Destination directory: c:\project\wheelhouse
Successfully built azure
Cleaning up...

C:\Project>type requirements.txt
--find-links wheelhouse
--no-index
azure==0.8.0

C:\Project>pip install -r requirements.txt -v
Downloading/unpacking azure==0.8.0 (from -r requirements.txt (line 3))
    Local files found: C:/Project/wheelhouse/azure-0.8.0-py3-none-any.whl
Installing collected packages: azure
Successfully installed azure
Cleaning up...
    Removing temporary dir C:\Project\env\build...

请参阅

反馈

我们衷心期

posted @ 2019-03-16 22:12  中国人醒来了  阅读(1986)  评论(0编辑  收藏  举报