首页 >后端开发 >Python教程 >如何修复 Pytest 的'ImportError:No Module Named...”问题?

如何修复 Pytest 的'ImportError:No Module Named...”问题?

Patricia Arquette
Patricia Arquette原创
2024-12-07 01:26:131034浏览

How to Fix Pytest's

Pytest 的路径错误:'ImportError: No Module Named...'

当使用 Pytest 并遇到令人烦恼的错误 'ImportError:没有名为...的模块”,该问题通常源于 Python 的模块导入行为。 Pytest 会遍历目录来定位模块,但是当在模块的父目录之外运行时,可能会找不到它们。

最近 Pytest 版本的推荐方法(>= 7)

现代版本的 Pytest 通过“pythonpath”配置选项提供了更简单的解决方案。通过在“pyproject.toml”或“pytest.ini”文件中定义“pythonpath”,您可以将必要的模块目录添加到Python的搜索路径。

Pytest的Conftest解决方案 7

对于旧版本的 Pytest,一种侵入性较小的方法是在项目的根目录中创建一个空的“conftest.py”文件。 Pytest 会在测试收集期间自动将此目录添加到 Python 的搜索路径中。

特定项目结构的提示

  • 对于父目录不包含 ' 的包布局__init__.py'文件,将conftest.py放在包根目录下。
  • 对于使用'src'布局,将conftest.py放在'src'目录中。但是,请务必小心,因为这可能会损害“src”布局的优势。

结论

通过使用“pythonpath”修改 Python 的搜索路径配置或“conftest.py”文件,您可以解决“ImportError:没有名为...的模块”问题,并确保跨不同的测试顺利进行环境。

以上是如何修复 Pytest 的'ImportError:No Module Named...”问题?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn