我将pytest
安装到virtualenv
并从该虚拟环境运行它,但它没有使用我在该虚拟环境中安装的软件包。相反,它使用主系统包。 (使用python -m unittest discover
,我实际上可以使用正确的python和包运行我的测试,但我想使用py.test框架。)
py.test是否有可能实际上没有在virtualenv中运行pytest,我必须指定运行哪个pytest?
如何让py.test只使用我的virtualenv中的python和包?
另外,由于我的系统上有几个蟒蛇,我怎么知道哪个python pytest正在使用?它会在我的virtualenv中自动使用python,还是我必须以某种方式指定?
答案 0 :(得分:24)
在您的环境中,您可以尝试
python -m pytest
答案 1 :(得分:9)
要使它起作用,需要跳点舞:
source venv/bin/activate
pip install pytest
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环境