我剛剛開始使用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