2015-05-28 56 views
0

我有一個封裝結構,如:Python不能導入包

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?

回答

1
from thePackage import moduleA 
+0

你的回答是如何導入封裝的模塊正確它幫助我。但是,我遇到了這種方法失敗的情況。 – user3731622

0

我同時使用SpyderPython3.4遇到的問題。

當我關閉並重新啓動Spyder時,我能夠使用import thePackage導入包,並且我能夠使用import thePackage.moduleA導入模塊A.

此外,最初當我第一次嘗試導入模塊使用import thePackage,它失敗了。在這一點上,我可能修改並保存了__init__.py。然後我可能試着再次使用import thePackage導入模塊,但也許這並不總是嘗試導入新保存的thePackage版本。因此,我建議嘗試

import importlib 
importlib.reload(thePackage) 

強制導入新保存的thePackage版本。