在虚拟环境中安装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” 追溯(最近一次通话): 在第1行的文件“ d:\ MyPytest \ test_sample.py”中 导入pytest ModuleNotFoundError:没有名为“ pytest”的模块 [Done]在0.185秒内以代码= 1退出了
答案 0 :(得分:1)
TLDR:我怀疑您在系统级pytest
网站包中安装了python
,因此当您尝试在{{1 }},因为您的pytest
中没有安装此依赖项,所以抛出了virtualenv
。虚拟环境为您提供了一个沙盒环境,因此您可以为项目尝试潜在的ModuleNotFoundError
库,但是它们是自包含的,无法访问您的系统级python第三方库。
通常,当 import语句无法成功导入指定的模块时,会引发virtualenv
。如果问题是由于无效或不正确的路径引起的,则将引发python
。
从您的问题中得知,不清楚您在{{1} }}在您的系统级别ImportError
站点程序包中。.因此,我将考虑让ModuleNotFoundError
在pytest
中工作,因为这可能是您想要的:
Virtualenv很不错,因为它们为您提供了一个沙盒环境,可与python库一起使用,从而避免了混乱您的系统级virtualenv
配置。现在virtualenv
被扔到python
内,因为它找不到要运行的测试的pytest
模块。也许您可以尝试激活您的virtualenv
并在此python
内重新安装ModuleNotFoundError
并查看此操作是否可以解决您的问题:
激活您的虚拟环境:
virtualenv
在您的virtualenv中安装pytest
:
注意:安装virtualenv
之前,您应该在括号中看到pytest
名称。对于此示例,假设您创建了一个名为virtualenv
# Posix systems
source /path/to/ENV/bin/activate
# Windows
\path\to\env\Scripts\activate
现在pytest
中的virtualenv's
可供您使用。有关更多信息,请查看pytest
的{{3}}。我还建议您研究一下documentation,它很好地环绕在env
周围,以提供更方便的命令来激活/停用(env) pip install pytest
。
希望有帮助!