在 Python 项目中,requirements.txt 文件通常用于列出项目依赖的库及其版本号。这样可以方便地在其他环境中安装相同的依赖。
以下是生成 requirements.txt 文件的几种方法:
如果你已经在虚拟环境或全局环境中安装了所有需要的依赖包,可以直接使用以下命令生成 requirements.txt:
1 |
pip freeze > requirements.txt |
特点:
为了确保 requirements.txt 中只包含项目实际需要的依赖,你可以手动记录依赖包,或者使用工具来分析代码中的导入情况。
创建一个 requirements.txt 文件,并手动添加你需要的依赖。例如:
1 2 3 4 |
flask==2.3.2 numpy>=1.21.0 pandas requests |
pipreqs 是一个工具,它可以扫描你的项目目录,自动生成项目所需的依赖列表。
1.安装 pipreqs:
1 |
pip install pipreqs |
2.在项目根目录运行以下命令:
1 |
pipreqs ./ --encoding=utf8 --force |
3.生成的 requirements.txt 文件会类似于:
1 2 3 4 |
flask==2.3.2 numpy==1.21.0 pandas==1.3.5 requests==2.26.0 |
如果你使用的是现代依赖管理工具(如 poetry 或 pipenv),它们会自动生成类似 requirements.txt 的文件。
初始化项目:
1 |
poetry init |
添加依赖:
1 |
poetry add flask numpy pandas requests |
导出为 requirements.txt:
1 |
poetry export -f requirements.txt --output requirements.txt |
初始化项目:
1 |
pipenv install flask numpy pandas requests |
导出为 requirements.txt:
1 |
pipenv lock -r > requirements.txt |
如果你的项目使用了 setup.py 或 pyproject.toml 文件定义依赖,也可以从中生成 requirements.txt。
如果 setup.py 中定义了 install_requires,可以使用以下命令提取依赖:
1 2 3 4 5 6 7 8 9 10 11 |
from setuptools import setup
setup( name="your_project", install_requires=[ "flask==2.3.2", "numpy>=1.21.0", "pandas", "requests", ], ) |
然后运行:
1 2 |
pip install -e . pip freeze > requirements.txt |
如果你使用 pyproject.toml(如 Poetry 或 Flit),可以使用以下命令导出:
1 |
poetry export -f requirements.txt --output requirements.txt |
1.版本控制:
2.区分开发依赖:
开发依赖(如测试工具、格式化工具)可以单独列在一个文件中,例如 requirements-dev.txt。
示例:
1 2 3 4 5 6 7 |
# requirements.txt flask==2.3.2 numpy>=1.21.0
# requirements-dev.txt pytest==7.0.0 black |
3.虚拟环境:
建议在虚拟环境中生成 requirements.txt,以避免包含全局环境中的无关依赖。
通过以上方法,你可以轻松生成适合项目的 requirements.txt 文件!