使用 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 文件的目的是凍結環境的要求,因此所有已安裝的包都采用精確的版本編寫。 使用精確的版本可確保輕松地在其他計算機上重現環境。 即使采用一個版本范圍(作為另一個包的依賴項)或使用安裝程序而非 pip 安裝了包,也會包含這些包。
如果包不能通過 pip 安裝,且它出現在 requirements.txt 文件中,則整個安裝會失敗。 在這種情況下,手動編輯文件以排除此包或使用 pip 的選項來指包的可安裝版本。 例如,你可能更喜歡使用 pip wheel
來編譯依賴項,並向 requirements.txt 添加 --find-links <path>
選項:
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...
請參閱
反饋
我們衷心期