在我的客户端代码中,我有:
import sys
import os
YAP_PATH = "/package/src/python"
if YAP_PATH not in sys.path:
sys.path.append(YAP_PATH)
if 'yap' in sys.modules:
reload(yap)
import yap
print "working dir", os.getcwd()
(这是sage的开发环境,所以不要对hacky解决方案大吼大叫)
在我的模块中__init__.py
:
import Repository
__all__ = ['Repository']
print "yap loaded"
每次评估第一个代码块(在sage单元格中)时,都会打印“yap loaded”,因此每次都会重新加载模块。
我想在__init__.py
中实现的目标是,每次重新加载模块时,同样重新加载类Repository
。
如何在不将代码放入sage单元格的情况下实现,而是放在__init__.py
文件中?
答案 0 :(得分:0)
让它工作,也许有人觉得它有用:
from Repository import Repository
__all__ = ['Repository']
def main(path):
import sys
_module_ = sys.modules[__name__]
if hasattr(_module_, 'WORKING_PATH'):
for m in __all__:
if __name__ + "." + m in sys.modules:
m = sys.modules[__name__ + "." + m]
reload(m)
else:
_module_.WORKING_PATH = path
if __name__ == 'yap':
print "yap loaded"
欢迎补丁