0
我將Python 2.7中編寫的模塊更新到Python 3.6。我對這兩種版本的語言中處理__init__.py
的方式感到擔憂。python 3.6 vs python 2.7中的__init__.py
尤其是我__init__.py
看起來是這樣的:
from FT_optimize import *
from FuzzyVars import *
from FuzzyTree import *
當我從Python 2.7版軟件包上傳。有這樣的事情:
import FuzzyTree as ft
我可以訪問在__init__.py
中聲明的所有模塊的命名空間。喜歡的東西:
ft.optmize_partition(ft.FuzzyTree)
但是相同的代碼在Python 3.6報告的錯誤:
AttributeError: module 'FuzzyTree' has no attribute 'optimize_partition'
任何想法?
從Python文檔中我沒有看到任何標準差異。
是你當前的工作目錄放置'__init__'的目錄還是你安裝了軟件包? – MSeifert
現在我找到了解決方案。看起來,在python3中,即使它們位於同一個目錄中,也必須聲明包中文件的相對路徑。所以我寫道:從.FT_optimize導入*(和其他導入相同),現在一切似乎工作。 –