如何在virtualenv中使用pytest?

Hen*_*ham 27 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,还是我必须以某种方式指定?

Ica*_*rus 30

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

python -m pytest
Run Code Online (Sandbox Code Playgroud)


7yl*_*l4r 15

有一些舞步可以使它起作用:

  1. 激活您的venv: source venv/bin/activate
  2. 安装pytest: pip install pytest
  3. 重新激活您的venv: deactivate && source venv/bin/activate

原因是仅在将文件实际安装到中之后,才通过设置文件的路径来pytest设置。在安装之前,您无法将路径设置为其他内容。sourceactivatepytestvenv

activate虚拟环境中安装的所有控制台入口点都需要重新访问。

  • 步骤 3 也可以是“hash -r” (4认同)

Moh*_*lil 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环境source /home/venv/bin/activate,然后运行你的脚本python <you python file.py>

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