我刚刚开始使用python,并且对理解包内模块加载的搜索路径有困难。我有这样的结构:Intrapack模块在python中的加载
top/ Top-level package
__init__.py Initialize the top package
src/ Subpackage for source files
__init__.py
pkg1/ Source subpackage 1
__init__.py
mod1_1.py
mod1_2.py
...
pkg2/ Source subpackage 2
__init__.py
mod2_1.py
mod2_2.py
...
...
test/ Subpackage for unit testing
__init__.py
pkg1Test/ Tests for subpackage1
__init__.py
testSuite1_1.py
testSuite1_2.py
...
pkg2Test/ Tests for subpackage2
__init__.py
testSuite2_1.py
testSuite2_2.py
...
...
在testSuite1_1我需要导入模块mod1_1.py(依此类推)。我应该使用哪些进口声明? Python的官方教程(位于docs.python.org,sec 6.4.2)说:
“如果在当前包(当前模块是子模块的包)中找不到导入的模块,则导入语句查找具有给定名称的顶级模块。“
我把这个意思,我可以使用(从内testSuite1_1.py):
从src.pkg1进口mod1_1
或
进口src.pkg1.mod1_1
既不可行。我在这里阅读了几个类似问题的答案,但找不到解决方案。
编辑:我改变了模块名称,遵循Python的命名约定。但是我仍然无法得到这个简单的例子。
这给我一个破折号的语法错误。 – 2012-02-16 03:03:59