在运行程序"从外部"重新加载python模块

时间:2015-02-20 12:26:41

标签: python module runtime reload python-2.6

我已经在我的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中,所以我希望它可能(至少在理论上)是可能的。

其他信息:

  • debian 6,linux 3.2,64bit
  • python2.6的
  • main.py是从命令行执行的(bash) *

0 个答案:

没有答案