我已经在我的python程序中完成了几个小时的工作(现在仍在运行),但现在我发现其中一个模块中存在一个阻止我保存的错误。复制我所做的工作会有很多工作,所以我想知道 - 有没有办法在“从外部”运行程序中重新加载python模块?
让我的问题更清楚 - 想象我有2个python文件:
# foo.py
def save(x):
# there's a bug, pirnt instead of print
pirnt 'saved: ', x
和
# main.py
import foo
# a lot of work here
precious_data = 'abc'
while True:
s = raw_input()
try:
foo.save(precious_data)
except Exception as e:
print 'error:', e
我刚刚发现我在foo.py
中遇到了错误,但是它打印了一个错误,但是main.py
处理了错误,并且仍在使用这些宝贵的数据。
在foo.py
仍在运行时,有什么方法可以强制python解释器重新加载main.py
示例很简单,但实际应用程序具有相同的逻辑 - 即在某些提示中只有一个foo.py
来自main.py
的调用(实际上点击了按钮),没有数据,对象或者来自foo.py
的类持久存储在main.py
中,所以我希望它可能(至少在理论上)是可能的。
其他信息:
main.py
是从命令行执行的(bash)
*