ImportError: Module not found but sys.path is showing the file resides under the path

ImportError: Module not found but sys.path is showing the file resides under the path

当我在我的代码中打印 sys.path 时,我得到以下输出:

['C:\Netra_Step_2015\Tests\SVTestcases'、'C:\Netra_Step_2015\Tests\SVTestcases\TC-Regression'、'C:\Python27\python27.zip'、'C:\Python27\DLLs'、'C:\Python27\lib' 等]

现在,当我写 "import testCaseBase as TCB" 时,testcaseBase.py 位于这条路径中:

C:\Netra_Step_2015\Tests\SVTestcases\Common\shared

我得到一个错误:“ImportError:没有名为 testCaseBase 的模块”

我的代码在 C:\Netra_Step_2015\Tests\SVTestcases\TC-Regression\regression.py 中。我的代码继续编译,但驻留在并行目录中的 testcaseBase.py 无法编译。

可能是什么原因?

C:\Netra_Step_2015\Tests\SVTestcases\Common\shared

在你的 PYTHONPATH 环境中

也许我遗漏了什么,但是这个文件路径...

C:\Netra_Step_2015\Tests\SVTestcases\Common\shared

...不在您的 sys.path 中,因此出现错误也就不足为奇了。不过,您有多种选择。更改项目结构,或者,如果 Commonshared 是实际的包,其中定义了 __init__.py,请执行:

import Common.shared.testCaseBase

您也可以在调用脚本中附加路径,因此:

sys.path.append('\SVTestcases\Common\shared')

或者,实际上只需将以下路径添加到您的 ENV 变量 (PYTHONPATH)

C:\Netra_Step_2015\Tests\SVTestcases\Common\shared

但每次都用编辑 PYTHONPATH 来代替良好的目录结构和导入技术并不一定是个好习惯。如果你换一种方式解决这个问题,你会过得更好。

请不要在路径中使用 ~/ 。这是行不通的。使用完整路径。