2015-11-16 23 views
0

我有一個用Python 2編寫的軟件包,我正在嘗試改進以使用Python 3.至少可以說是痛苦的。我有一個使用未來 absolute_import部分代碼的問題。Python 2/3與導入相關的retofit問題

這適用於Python 2,但不是Python 3,所以我希望有人能指出我的問題。

的封裝結構是:

fusion 
    -> __init__.py 
    agol 
    -> featureservice.py 
    -> layer.py 

融合INIT被定義爲:

from __future__ import absolute_import 
from . import agol 

的agol子包被定義爲:

from __future__ import absolute_import 
from . import featureservice 
from . import layer 

的featureservice.py具有這個導入,其中的問題是: 起。導入圖層 layer.py有一個類似的導入: from。導入featureservice

它們都可以互相引用,其中該圖層可能是要素服務的子項。但是我得到這個導入問題,導入這個模塊到每個py文件的正確方法是什麼?

謝謝

+0

你是什麼意思 「得到這個進口問題」 呢?這是一個例外嗎?你能在這裏粘貼異常嗎?謝謝! –

回答

2

循環相對進口不工作在Python 3

圓形進口被認爲是不好的做法,因爲你已經兩個模塊緊密耦合到對方。您可能需要考慮爲什麼您需要將featureservice導入layerlayer導入爲featureservice

也許有一些功能在每個應該在另一個模塊,依靠兩者?或者,也許而不是進一步分割這些模塊,你應該將它們合併在一起?

相關閱讀:

+0

感謝您提供此信息。很有幫助! –