首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ModuleNotFoundError:没有名为“pytest”的模块

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

Stack Overflow用户
提问于 2019-04-12 13:33:42
回答 4查看 108K关注 0票数 30

在虚拟环境中安装pytest模块之后,我使用python代码调用并运行提示来查找pytest模块。

我在虚拟环境之外安装了pytest模块。我可以用蟒蛇叫它。

代码语言:javascript
复制
import pytest


def test_main():
    assert 5!=5

if __name__ == "__main__":
    pytest.main()

错误如下:

运行python -u "d:\MyPytest\test_sample.py“跟踪(最近一次调用):文件"d:\MyPytest\test_sample.py",第1行,在导入pytest ModuleNotFoundError:没有用code=1完成的模块在0.185秒内退出

EN

回答 4

Stack Overflow用户

发布于 2019-04-12 14:13:36

TLDR:我怀疑您在系统级python站点中安装了pytest --所以当您尝试在virtualenv中运行pytest时,它会抛出一个ModuleNotFoundError,因为它在virtualenv中没有安装这个依赖项。虚拟环境为您提供了一个沙箱环境,这样您就可以为您的项目尝试使用潜在的python库,但是它们是独立的,并且无法访问系统级别的python第三方库。

通常,当导入语句在成功导入指定模块时遇到问题时会引发ImportError。如果问题是由于路径无效或不正确造成的,则会引发ModuleNotFoundError

从您的问题来看,不清楚您在哪里安装了pytest,因为您说您在您的virtualenv中安装了它,然后您说您在您的系统级python站点上的virtualenv之外安装了它-软件包。因此,我将给出让pytestvirtualenv中工作的想法,因为这可能是您想要的:

Virtualenv很不错,因为它为您提供了一个沙箱环境来处理python库,可以安全地破坏您的系统级python配置。现在,在您的ModuleNotFoundError中抛出ModuleNotFoundError,因为它无法为您试图运行的测试找到模块。也许您可以尝试激活您的virtualenv并在这个virtualenv中重新安装pytest,看看这个操作过程是否解决了您的问题:

激活您的虚拟主机:

代码语言:javascript
复制
# Posix systems
source /path/to/ENV/bin/activate

# Windows
\path\to\env\Scripts\activate

在您的虚拟环境中安装pytest ::

注意事项:在安装pytest之前,您应该在括号中看到您的virtualenv's名称。对于本例,假设您创建了一个名为:env的虚拟环境

代码语言:javascript
复制
(env) pip install pytest

现在,pytest将在您的virtualenv中提供给您。要了解更多信息,请查看virtualenv文档。我还建议查看虚拟包装器,,它很好地封装了virtualenv以获得更方便的激活/停用virtualenvs的命令。

希望这能帮上忙!

票数 34
EN

Stack Overflow用户

发布于 2022-02-02 23:54:32

如果这不是virtualenv的情况,那么试试python3 -m pytest

票数 5
EN

Stack Overflow用户

发布于 2022-06-08 10:31:48

在我的情况下,如果我使用vscode终端。我也有同样的错误。然后,我尝试了同样的使用CMD和它的工作。因此,我建议使用系统终端而不是任何第三方终端。

cmd: python -m pytest

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55652866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档