如何在virtualenv中使用pytest?

时间:2016-01-27 18:16:53

标签: python virtualenv pytest

我将pytest安装到virtualenv并从该虚拟环境运行它,但它没有使用我在该虚拟环境中安装的软件包。相反,它使用主系统包。 (使用python -m unittest discover,我实际上可以使用正确的python和包运行我的测试,但我想使用py.test框架。)

py.test是否有可能实际上没有在virtualenv中运行pytest,我必须指定运行哪个pytest?

如何让py.test只使用我的virtualenv中的python和包?

另外,由于我的系统上有几个蟒蛇,我怎么知道哪个python pytest正在使用?它会在我的virtualenv中自动使用python,还是我必须以某种方式指定?

4 个答案:

答案 0 :(得分:24)

在您的环境中,您可以尝试

python -m pytest

答案 1 :(得分:9)

要使它起作用,需要跳点舞:

  1. 激活您的虚拟货币:source venv/bin/activate
  2. 安装pytest:pip install pytest
  3. 重新激活您的虚拟视频:deactivate && source venv/bin/activate

原因是,只有在将pytest实际安装在source中之后,activate才能pytest设置venv的路径。安装之前,您无法将路径设置为某个路径。

在虚拟环境中安装的任何控制台入口点都需要重新activate

答案 2 :(得分:3)

在我的情况下,我不得不离开venv(停用),删除pytest(pip uninstall pytest),输入venv(source / my / path / to / venv),然后重新安装pytest(pip install pytest)。我不知道为什么pip拒绝在venv中安装pytest(它说它已经存在)。

我希望这会有所帮助

答案 3 :(得分:0)

每次要运行python脚本时都必须激活python env,有几种方法可以激活它,我们假设你的virtualenv安装在/ home / venv下:

1-基础的是用一个命令行运行python >>> /home/venv/bin/python <your python file.py>

2-在python脚本文件的顶部添加此行 #! /home/venv/bin/python然后运行python <you python file.py>

3-激活你的python env source /home/venv/bin/activate,然后运行你的脚本,如python <you python file.py>

4-使用virtualenvwrapper来管理和激活你的python环境