ModuleNotFoundError:没有名为“ pytest”的模块

时间:2019-04-12 13:33:43

标签: python pytest

在虚拟环境中安装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退出了

1 个答案:

答案 0 :(得分:1)

TLDR:我怀疑您在系统级pytest网站包中安装了python,因此当您尝试在{{1 }},因为您的pytest中没有安装此依赖项,所以抛出了virtualenv。虚拟环境为您提供了一个沙盒环境,因此您可以为项目尝试潜在的ModuleNotFoundError库,但是它们是自包含的,无法访问您的系统级python第三方库。

通常,当 import语句无法成功导入指定的模块时,会引发virtualenv。如果问题是由于无效或不正确的路径引起的,则将引发python

从您的问题中得知,不清楚您在{{1} }}在您的系统级别ImportError站点程序包中。.因此,我将考虑让ModuleNotFoundErrorpytest中工作,因为这可能是您想要的:

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

希望有帮助!