傳統方式如下
pip freeze > requirements.txt
傳統匯出專案模組清單的方式很容易會產生一大堆檔案列表,因為會是從python的env中的site package裡面去讀取所使用的專案列表
而且很容易出現一大堆本地端的資訊如下,尤其當我們有使用.whl檔案來安裝環境時,特別會出現下面這種狀況,會導致難以利用這列表去建立新的環境
jsonschema @ file:///home/conda/feedstock_root/build_artifacts/jsonschema-meta_1669810440410/work
這邊推薦一個套件名為pipreqs
pipreqs 介紹
pipreqs 是一個非常方便的 Python 工具,主要用於 自動生成 Python 專案的 requirements.txt
檔案。這個檔案列出了專案所依賴的所有第三方套件,以及它們的版本號。
pipreqs 會掃描指定的目錄,分析 Python 檔案中的 import 語句,並根據這些資訊來確定專案所依賴的套件。它會盡可能地精確地找出這些套件的版本號。
- pipreqs 可以自動分析專案中的 import 語句,並生成準確的依賴列表。
- 透過所產生的
requirements.txt
檔案,可以輕鬆地將專案部署到不同的環境中,確保所有所需的套件都已安裝。 - 將
requirements.txt
檔案納入版本控制系統中,可以追蹤專案依賴的變化。
基本用法
pip install pipreqs
pipreqs . --force
常用選項
--save-path
: 指定生成requirements.txt
檔案的保存路徑。--force
: 強制覆蓋已存在的requirements.txt
檔案。--diff
: 比較生成的requirements.txt
檔案與已存在的檔案,並顯示差異。--debug
: 啟用除錯模式,輸出更多詳細資訊。
建議
- 在開始一個新專案時,就使用 pipreqs 生成
requirements.txt
檔案。 - 定期更新
requirements.txt
檔案,以確保專案的依賴關係是最新的。 - 在部署專案之前,使用
pip install -r requirements.txt
來安裝所有所需的套件。