2011-05-18 131 views
0

我有一个模块(Executive.py),我试图导入到另一个模块(ExecutiveTest.py)中。目录结构如下所示:Python导入问题

src/ 
    common/ 
     python/ 
       Executive.py 
     tests/ 
       ExecutiveTest.py 

在ExecutiveTest.py,我有以下行:

from common.Executive import Executive 

我得到一个错误说:ImportError: No module named common.Executive

如何纠正这种错误的进口?

+6

为什么你说“common.Executive”时,这不是模块的路径? – 2011-05-18 19:58:28

+1

另请参阅软件包文档:http://docs.python.org/tutorial/modules.html#packages – 2011-05-18 19:59:38

回答

2

必须在包的根目录中有一个__init__.py文件(它可以为空)。另外,您的模块层次结构必须反映目录结构,因此pythontests也应该是导入的一部分。

+0

哪些模块?执行测试还是ExecutiveTest? – Blade3 2011-05-18 20:00:03

1

我找到类似的帖子here。它看起来像你可以定义python在寻找要导入的东西时引用的路径。例如:

sys.path.append()