產生 Python 套件清單(requirements.txt)的主流程式工具包括:
- pip freeze(適合全環境備份)
- pipreqs(精準掃描專案內實際套件)
- conda(適用於 資料分析 虛擬環境)
- pip-tools(進階版本管理)
- 自定義腳本。
如果你是資料分析新手,會建議優先使用 pipreqs 以確保檔案精簡。

requirements.txt介紹
requirements.txt是一個簡單的文字檔,裡面會記錄每個使用到的套件以及版本,其目的和用途有三點:
- 方便管理:
requirements.txt可以明確指定開發項目當中所有需要的的外部Python套件和版本,可以避免因為版本差異導致的相容性問題。 - 方便協作:當新的開發人員加入專案或者在多個環境間部署專案時,可以輕鬆設定有相同Python套件和版本的開發環境。
- 自動化整理:當
requirements.txt被儲存下來後,就可以使用自動化工具來安裝在本地端的環境當中。
自動儲存requirements.txt的5種方法
1. freeze
使用 pip freeze,可以快速將當前 Python 環境中所有安裝的套件和其版本輸出到requirements.txt中,缺點是會將整個環境下的套件都記錄下來。
pip freeze > requirements.txt
2. pipreqs
它不僅基於當前環境,而是根據您的項目文件夾中實際使用的導入來生成 requirements.txt 文件。這有助於避免將未在項目中使用的包加入到 requirements.txt 中。
首先安裝pipreqs
pip install pipreqs
接著進入到你的開發專案跟目錄底下(Prompt),並將當前工作目錄移動到上一級目錄,也就是進入到’C:\User\user’目錄下方
cd C:\User\user\Projects
cd ..
最後執行pipreqs,搜尋Projects目錄下所有的套件和版本,並儲存到目錄下方
pipreqs Projects\
成功儲存應該會顯示以下
INFO: Successfully saved requirements file in Projects\requirements
3. conda
使用conda直接管理Python環境,就是打開Anaconda Prompt(anaconda3),可以將當前環境的所有套件存到requirements.txt中
conda list --export > requirements.txt
或是希望儲存成一個conda 的標準環境,導出一個 .yml 文件,可以用下面的程式碼儲存出來
conda env export > environment.yml
4. pip-tools
pip-tools 是管理命令字元的工具,其中的 pip-compile 命令可以存出一個精確、按照字母排序的 requirements.txt 文件,一樣要先安裝(pip)才可以執行唷!
pip install pip-tools
pip-compile
5. 自己寫一個小程式儲存requirements.txt
我們只要把想儲存套件版本的python檔案寫在save_package_versions(”)的括弧裡面,就能夠直接紀錄下當前環境當中有使用到的套件版本,程式碼放在我的colab。
import pkg_resources
def get_imports(filepath):
imports = set()
with open(filepath, 'r', encoding='utf-8') as file:
lines = file.readlines()
for line in lines:
line = line.strip()
if line.startswith('import') or line.startswith('from'):
parts = line.split()
if parts[0] == 'import':
imports.add(parts[1].split('.')[0])
elif parts[0] == 'from':
imports.add(parts[1].split('.')[0])
return imports
def save_package_versions(filepath):
imports = get_imports(filepath)
installed_packages = {pkg.key: pkg.version for pkg in pkg_resources.working_set}
with open("requirements.txt", "w") as f:
for imp in imports:
if imp in installed_packages:
f.write(f"{imp}=={installed_packages[imp]}\n")
else:
f.write(f"{imp}: Package not found or no version available\n")
# 儲存requirements.txt範例
save_package_versions('test.py')
安裝requirements.txt
學會了種不同方法來存儲requirements.txt,接下來要學如何正確載入requirements.txt到我們的環境當中,很簡單的方式就是用pip方法直接安裝到一個新的的環境當中
pip install -r requirements.txt
這樣就完成囉~
可以開始執行專案的程式碼啦!
requirements.txt常見問題
Q1: 什麼是 requirements.txt?為什麼資料分析專案需要它?
A: requirements.txt 是一個紀錄 Python 專案所需所有套件及其版本的文字檔。在資料分析中,不同的套件(如 Pandas 或 Scikit-learn)版本差異可能導致計算結果不同或程式報錯,透過此檔案可確保每個人都在相同的環境下執行。
Q2: 初學者最推薦哪一個產生 requirements.txt 的程式工具?
A: 推薦使用 pipreqs。
因為它只會記錄你專案中「真正用到」的套件,比 pip freeze 更乾淨,能有效避免安裝不必要的多餘套件。
Q3: 如何使用 requirements.txt 快速安裝所有套件?
A: 只要在終端機輸入 `pip install -r requirements.txt`,系統就會自動下載並安裝清單中指定的所有版本。
Q4: 資料分析常用的 Anaconda 環境也可以產出 requirements.txt 嗎?
A: 可以。
使用命令 `conda list –export > requirements.txt` 即可。若要給其他 conda 使用者,建議匯出成 .yml 格式。
Q4: 為什麼建議在虛擬環境中使用這些程式工具?
A: 為了避免不同專案間的套件版本衝突。
在獨立的虛擬環境中操作,能確保 requirements.txt 內容精確,不會混入其他專案的雜訊。
送給初學者的選項路徑:我該選哪種工具?
情境 A: 我只是想快速備份整個電腦的 Python 內容 → 用 `pip freeze`。
情境 B: 我寫完了一個專案,要上傳 GitHub 給別人看 → 用 `pipreqs` 。
情境 C: 我是用 Anaconda 進行資料分析的學生 → 用 `conda` 導出。
情境 D: 我已經是進階開發者,需要嚴格控管版本依賴 → 用 `pip-tools`。
想要直接開始進行 requirements 建立嗎?
現在就打開我提供給你的「 Colab 連結 」,內含常用的 requirements.txt 範本與虛擬環境建立指令稿,讓你專注在資料分析專案上,不再為環境設定煩惱!
