如何在 Python 虚拟环境中安装和使用 pytest?
在虚拟环境中用 pytest:python -m venv venv 创建环境 → 激活 → pip install pytest → pytest 运行测试。注意 IDE 和 CI 中的解释器选择。
流程:python3 -m venv venv 创建虚拟环境 → source venv/bin/activate 激活 → 按项目依赖声明用 python -m pip install 安装 → pytest 运行测试。
完整步骤
# 1. 创建虚拟环境
python3 -m venv venv
# 2. 激活
source venv/bin/activate # Linux/macOS
# venv\Scripts\activate.bat # Windows cmd
# .\venv\Scripts\Activate.ps1 # Windows PowerShell
# 3. 安装 pytest(和项目依赖)
python -m pip install -r requirements-dev.txt # 将 pytest 和项目依赖写入受控版本声明
# 无依赖声明的练习项目可用 python -m pip install pytest
# 4. 运行测试
pytest
pytest tests/test_api.py -v
为什么要用虚拟环境
- 项目依赖与系统 Python 隔离,避免版本冲突;
- 在 requirements 文件或锁文件中明确约束 pytest 及依赖版本,减少团队环境差异;
- CI 环境复现简单。
验证用的是虚拟环境的 pytest
which pytest # Linux/macOS,应指向 venv/bin/pytest
where.exe pytest # Windows cmd/PowerShell
python -m pytest # 更保险:显式用当前解释器的 pytest
推荐养成 python -m pytest 的习惯——它使用当前 python 解释器中的 pytest;仍需确认 python 本身指向目标环境,也可直接用虚拟环境解释器的绝对路径。
常见问题(FAQ)
Q:装了 pytest 但命令找不到?
A:多半是虚拟环境没激活,或激活的是另一个环境。which python 和 which pytest 应在同一环境目录下。
Q:IDE(PyCharm/VSCode)里怎么配?
A:把项目解释器设为虚拟环境的 Python,IDE 的测试运行器会自动用该环境的 pytest。
Q:pytest 应该写进 requirements.txt 吗?
A:建议拆到 requirements-dev.txt(测试/开发依赖),生产部署时只装主文件,减小镜像体积。