我的包裹要复杂得多,但是这里的所有内容都被删除了,并且更容易阅读:
sound/
__init__.py
formats/
__init__.py
wavread.py
wavwrite.py
effects/
__init__.py
echo.py
(注意:我从the official tutorial)
借用了这个结构我希望能够从 wavwrite.py 引用 echo.py 。
在 wavwrite.py 中,我以这种方式提出了参考:
from ..effects import echo
我收到了这个错误:
File "C:\sound\formats\wavwrite.py", line 1, in <module>
from ..effects import echo
SystemError: Parent module '' not loaded, cannot perform relative import
我有一个朋友评论我应该尝试绝对导入,在这种情况下,我会遇到另一个问题。
在 wavwrite.py 中,我以这种方式提出了参考:
from effects import echo
或者
import effects.echo as echo
我收到了这个错误:
ImportError: No module named 'effects'
这一切对我来说都是正确的,这取决于我如何理解这应该有效,并且它让我疯了。它必须是我想念的简单事物。
答案 0 :(得分:1)
所以我找到了答案elsewhere on SO,但我不喜欢它:
from sys import path
from os.path import dirname as dir
path.append(dir(path[0]))
from effects import echo
这个功能,但它看起来非常难看,似乎应该没有必要。任何人都可以改进吗?