在虚拟环境中安装pytest
模块后,我使用python代码调用并运行提示来查找pytest
模块。
我在虚拟环境之外安装了pytest模块。我可以用python正常调用它。
import pytest
def test_main():
assert 5!=5
if __name__ == "__main__":
pytest.main()
错误如下:
[运行] python -u“d:\ MyPytest \ test_sample.py”Traceback(最近一次调用最后一次):文件“d:\ MyPytest \ test_sample.py”,第1行,导入pytest ModuleNotFoundError:没有名为'pytest'的模块[完成]在0.185秒内退出代码= 1
TLDR:我怀疑你在你的系统级pytest
site-packages中安装了python
所以当你试图在你的pytest
中运行virtualenv
时,它会抛出一个ModuleNotFoundError
,因为它没有在你的virtualenv
中安装这个依赖项。虚拟环境为您提供沙盒环境,因此您可以为项目试验潜在的python
库,但它们是自包含的,无法访问您的系统级python第三方库。
通常,当import语句成功导入指定模块时,会引发ImportError
。如果问题是由于路径无效或不正确,则会引发ModuleNotFoundError
。
从你的问题不清楚你在哪里安装pytest
因为你说你在你的virtualenv
中安装它然后你说你在你的系统级virtualenv
网站包装你的python
以外安装..所以我会考虑让pytest
到virtualenv
在python
内工作,因为这可能是你想要的:
Virtualenv很不错,因为它们为您提供了一个沙盒环境来玩蟒蛇库,不会弄乱您的系统级ModuleNotFoundError
配置。现在virtualenv
被扔进你的pytest
,因为它无法找到你试图运行的测试的virtualenv
模块。也许你可以尝试激活你的pytest
并在这个virtualenv
中重新安装# Posix systems
source /path/to/ENV/bin/activate
# Windows
\path\to\env\Scripts\activate
,看看这个行动是否能解决你的问题:
激活你的virtualenv:
pytest
在你的virtualenv中安装virtualenv's
:
注意:在安装pytest
之前,您应该在括号中看到您的env
名称。对于此示例,假设您创建了一个名为:(env) pip install pytest
的虚拟环境
pytest
现在virtualenv
将在你的virtualenv
内提供给你。欲了解更多信息,请查看documentation的virtualenvwrapper,。我还建议调查virtualenv
,它很好地包裹virtualenvs
,以便更方便地命令激活/停用qazxswpoi。
希望这有帮助!