我的包结构如下:
thePackage/
__init__.py
moduleA.py
moduleB.py
moduleC.py
__init__.py
文件包含
from . import moduleA
为简单起见,我cd
进入包含foler thePackage
。
当我尝试import thePackage
时,我收到错误:
Traceback (most recent call last):
File "<ipython-input-10-5fe9a18b3124>", line 1, in <module>
import thePackage
File "C:\thePackage\__init__.py", line 2, in <module>
from . import moduleA
ImportError: cannot import name 'moduleA'
我读了几篇帖子
Importing packages in Python,但仍无法弄清楚我的问题。该帖子中接受的答案表明我应该能够通过import thePackage.moduleA
导入子模块模块A,但是当我尝试这个时,我得到完全相同的错误。
我如何重视包裹thePackage?
另外,我怎样才能导入moduleA?
答案 0 :(得分:1)
from thePackage import moduleA
答案 1 :(得分:0)
我在使用Spyder
和Python3.4
时遇到了问题。
当我关闭并重新启动Spyder
时,我可以使用import thePackage
导入包,然后我可以使用import thePackage.moduleA
导入moduleA。
此外,最初我第一次尝试使用import thePackage
导入模块时,它失败了。此时我可能已经修改并保存了__init__.py
。然后我可能尝试使用import thePackage
再次导入模块,但是这可能并不总是尝试导入新保存的thePackage
版本。因此,我建议尝试
import importlib
importlib.reload(thePackage)
强制导入新保存的thePackage
版本。
答案 2 :(得分:0)
你可以尝试
sudo apt-get install python-setuptools
在https://bitbucket.org/pypa/setuptools/issues/368/module-object-has-no-attribute-packaging找到了, 当我遇到安装pyttsx的挑战时,它帮助了我,