You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用pip freeze区分Python项目的测试与非测试依赖?

区分Python项目的运行依赖与测试依赖

1. 手动维护核心运行依赖(requirements.txt)

别用pip freeze直接生成这个文件——它会把你环境里所有已安装的包(包括测试工具、间接依赖)一股脑塞进去,完全不符合需求。你得手动列出项目运行必需的直接模块,比如:

requests>=2.28.0
pandas>=1.5.0

只保留代码跑起来必须的,多余的一概不加。

2. 单独维护测试/开发依赖(requirements_dev.txt)

这个文件专门放测试、开发相关的额外工具,还可以复用核心依赖,写法如下:

# 先引入运行依赖,避免重复写
-r requirements.txt
# 测试框架
pytest>=7.0.0
# 代码检查工具
flake8>=5.0.0
# 代码格式化工具
black>=22.0.0

用-r requirements.txt能让开发环境一次性装完所有需要的包,不用分开安装两次。

3. 在setup.py中复用这两个文件

写个简单的读取函数,把文件里的依赖列表导入到对应的字段里,示例代码:

from setuptools import setup

def read_requirements(file_path):
    # 读取文件,过滤注释和空行
    with open(file_path, 'r') as f:
        return [line.strip() for line in f if line.strip() and not line.startswith('#')]

setup(
    name="your-project-name",
    version="0.1.0",
    # 运行依赖
    install_requires=read_requirements("requirements.txt"),
    # 开发/测试额外依赖
    extras_require={
        "dev": read_requirements("requirements_dev.txt")
    }
)

实用小技巧

  • 本地开发时,用pip install -e .[dev]就能一键安装可编辑版本的项目+所有开发依赖,省事儿。
  • 如果需要给部署环境锁定精确的依赖版本(避免版本兼容问题),可以单独生成requirements.lock文件,用pip freeze > requirements.lock就行,但这个只用于部署,别替换手动维护的requirements.txt。

内容的提问来源于stack exchange,提问作者Javi Torre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 06:00:47