ImportError:找不到模块,但sys.path显示文件位于路径下

时间:2015-02-09 09:27:04

标签: python python-2.7 python-3.x

当我在代码中打印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 \ _version.py中。我的代码继续编译,但是驻留在并行目录中的testcaseBase.py无法编译。

可能是什么原因?

3 个答案:

答案 0 :(得分:3)

也许我错过了一些东西,但这个文件路径......

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时,替换良好的目录结构和导入技术并不一定是个好习惯。如果你以另一种方式解决问题,你会好得多。

答案 1 :(得分:2)

<强> C:\ Netra_Step_2015 \测试\ SVTestcases \共同\共享

在您的PYTHONPATH环境中

答案 2 :(得分:0)

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