1
重裝Python模塊我有相似的結構SciPy的/ numpy的,在這裏你有幾個主要子模塊的封裝,並且每個子模塊包含從已經被夷爲平地到同一個命名空間中的各種文件的功能。比方說,帶有扁平的命名空間
package/
sub1/
__init__.py
file1.py
file2.py
然後sub1/__init__.py
看起來是這樣的:
from .file1 import func1, func2
from .file2 import func3
結果是我可以做的
import package.sub1
package.sub1.func1()
然而,問題在於以下不起作用:
>>> import package.sub1
-- change things in file1.py --
>>> reload(package.sub1)
該功能不會更新。它的工作原理,如果我做import package.sub1.file1
代替,所以也有一些是用扁平的命名空間,這使得它失去了模塊的連接。我的主要問題是如何仍然可以使用reload
命令,同時還獲得了能夠寫兄弟姐妹的功能在不同的文件的好處。
這是一個可行的解決方案,謝謝!我只想'reload()'在開發過程中的交互式iPython會話期間工作,所以最終的包不會依賴它。 –