2011-10-13 80 views
0

我有以下的情況,一個名爲enthought.chaco2和我有很多進口模塊,如from enthought.chaco.api import ..猴子修補和調度

有啥添加chaco.api並使其分派到一個正確的最快方法?

我嘗試了一些東西,例如:

import enthought.chaco2 as c2 
import enthought 
enthought.chaco = c2 

,但它不工作。我可能必須創建一個真實模塊並將其添加到路徑中;這是唯一的方法嗎?

回答

0

你在找什麼行爲?

您可以使用from enthought.chaco import api as ChacoApi,然後通過ChacoApi尋址模塊中的任何內容,如ChacoApi.foo()chaco_class = ChacoApi.MyClass()

您可以使用(並不建議)from enthought.chaco.api import *並將模塊的所有內容添加到您的基本命名空間。 您可以將一個__all__變量聲明添加到chaco__init__.py文件中,並且具有前面的示例(帶*)僅導入您輸入的列表__all__

或者你可以導入具體情況,你可以使用你現在要做的正確的方式,也就是在我看來完全沒有任何內容...

+0

我以這樣的方式進行,「從enthought.chaco.api進口x「工作正常,即使我只有enthought.chaco2 .. 因此,導入一切實際上並沒有幫助,因爲仍然沒有找到chaco.api。 我試圖創建另一個包,然後導入一切(enghought.chaco.api),但這也是有問題的,因爲然後其他進口像 「從enthought.etsconfig.etsconfig導入ETSConfig」停止工作 –

+0

enthought與etsproxy解決已經相似問題,簡而言之,它們會重新創建整個namspace和模塊結構,並在每一個結構中導入新的命名空間,我希望避免這樣做。 –