0

如果你有这样的包结构:

foldertest/
  __init__.py
  a/
    __init__.py
    asub/
      __init__.py
  b/
    __init__.py

foldertest.__ini__.py

import a

foldertest.a.__init__.py

import foldertest.a.asub
print foldertest.a.asub

如果我从上面的文件夹foldertest/运行 python shell 并发出import foldertest以下错误:

>>> import foldertest
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "foldertest/__init__.py", line 1, in <module>
    import foldertest.a
  File "foldertest/a/__init__.py", line 4, in <module>
    print foldertest.a.asub
AttributeError: 'module' object has no attribute 'a'

而如果我foldertest.a.__init__.py改为导入foldertest.b并尝试打印我会收到:

>>> import foldertest
<module 'foldertest.b' from 'foldertest/b/__init__.pyc'>
>>> 

我做错了什么还是不能在包树中使用对包/模块自己的分支的绝对引用?(PyDev 似乎也不赞成写这样的导入)我想有绝对的包引用以保持一致性。此外,我不知道有任何“最佳实践”来编写导入语句或构建建议的包。

4

0 回答 0