ModuleNotFoundError:没有名为'pytest'的模块

问题描述 投票:2回答:1

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

python pytest
1个回答
2
投票

TLDR:我怀疑你在你的系统级pytest site-packages中安装了python所以当你试图在你的pytest中运行virtualenv时,它会抛出一个ModuleNotFoundError,因为它没有在你的virtualenv中安装这个依赖项。虚拟环境为您提供沙盒环境,因此您可以为项目试验潜在的python库,但它们是自包含的,无法访问您的系统级python第三方库。

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

从你的问题不清楚你在哪里安装pytest因为你说你在你的virtualenv中安装它然后你说你在你的系统级virtualenv网站包装你的python以外安装..所以我会考虑让pytestvirtualenvpython内工作,因为这可能是你想要的:

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内提供给你。欲了解更多信息,请查看documentationvirtualenvwrapper,。我还建议调查virtualenv,它很好地包裹virtualenvs,以便更方便地命令激活/停用qazxswpoi。

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.