gpt4 book ai didi

python - 无法在 Windows 上导入 conftest.py

转载 作者:行者123 更新时间:2023-12-02 09:29:05 26 4
gpt4 key购买 nike

我对 pytest 和创建包(模块)总体来说还很陌生。我用 pytest 编写了一些测试,这些测试运行良好,直到我重构脚本结构。这其实是有必要的,因为剧本很多,定位比较困惑。当前的目录结构如下所示:

C:\Users\local\workspace
.+---tools
+---base
+---__init__.py
+---conftest.py
+---script1.py
+---script2.py
+---misc
+---__init__.py
+---run.py
+---__init__.py

script1.pyscript2.py 包含一些用于测试的类和特殊类。我被告知 conftest.py 应与顶级测试文件位于同一文件夹中,因此我将其放入 base 目录中。

我通过以下方式从 run.py 运行 pytest:

pytest_args = workspace + "/tools/base/script1.py "
pytest_args += workspace + "/tools/base/script2.py"
pytest.main(pytest_args)

其中workspace包含c:/Users/local/workspace。我收到此错误:

Traceback (most recent call last):
File "c:\Python27\Lib\_pytest\config.py", line 543, in importconftest
mod = conftestpath.pyimport()
File "c:\Python27\Lib\py\_path\local.py", line 660, in pyimport
raise self.ImportMismatchError(modname, modfile, self)
ImportMismatchError: ('tools.base.conftest', 'c:/Users/local/workspace\\jenkins\\tools\\base\\conftest.py', local('c:\\Users\\wokspace\\tools\\base\\conftest.py'))
ERROR: could not load c:\Users\local\workspace\tools\base\conftest.py

我真的不知道如何解决这个问题。当所有脚本都位于同一文件夹中(并且没有 __init__.py )时,一切正常。其他脚本工作正常(我的意思是依赖关系,其中某些脚本需要其他目录中的模块),只是 pytest 在此方面失败。

奇怪的是,在 Linux 发行版上,这工作得很好。我猜想windows路径有问题,这对于pytest来说似乎是一个真正的问题。您有什么想法如何解决这个问题吗?

谢谢

最佳答案

我遇到了类似的问题,最终解决这个问题的是删除我所有的 __pycache__ 目录和 .pyc 文件。

关于python - 无法在 Windows 上导入 conftest.py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33438612/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com