如何在flask中重新加载python模块?

如何在flask中重新加载python模块?,python,flask,Python,Flask,我有一个名为mapping.py的文件,它有一个字典methodMapping。在我的web应用程序中,一个键值对被添加到methodMapping字典中。在我将其附加到mapping.py之后,调用了reload(mapping),并重新加载文件(我通过在文件顶部打印一条消息进行了检查),但当我尝试访问键值对时,会引发KeyError 原始mapping.py文件: print('mapping.py loaded) methodMapping = {} methodMapping['ke

我有一个名为
mapping.py
的文件,它有一个字典
methodMapping
。在我的web应用程序中,一个键值对被添加到methodMapping字典中。在我将其附加到
mapping.py
之后,调用了
reload(mapping)
,并重新加载文件(我通过在文件顶部打印一条消息进行了检查),但当我尝试访问键值对时,会引发
KeyError

原始mapping.py文件:

print('mapping.py loaded) methodMapping =  {} 
methodMapping['key1'] = 'value1'
以下是如何将键值对附加到文件中:

from mapping import methodMapping
@app.route('/append', methods=['POST'])
def append():

    key = request.form.get('key')
    value = request.form.get('value')

    value = value.encode('ascii', 'ignore')

    f = open('mapping.py', 'a')
    f.write('methodMapping["'+key+'"] = '+value)
    f.write("\n\n")
    f.close()

    reload(mapping)
    return ....
添加键值后,mapping.py如下所示:

print('mapping.py loaded') 
methodMapping =  {} 
methodMapping['key1'] = 'value1'
methodMapping['key2'] = 'value2'
但是,当我尝试从flaskServer.py访问
methodMapping['key2']
时,会引发
KeyError
异常。当我重新启动服务器时,它能够找到
methodMapping['key2']

注意:我已经检查过这个,也尝试了
app.run(debug=True,port=8000)
,但这对于我的应用程序是不可能的,因为我正在使用keras和Tensorflow后端,设置debug=True将加载它两次,并导致
值错误:Tensor Tensor(…)不是图表的一部分
错误


如有任何意见或建议,我们将不胜感激。谢谢。

问题在于导入映射的方式。如果希望
reload(mapping)
工作,则需要使用
import mapping
而不是
from mapping import…


如果你找到了答案,你应该把它写在答案里,而不是评论里

我找到了解决办法:问题来自我导入映射的方式。如果我想
reload(mapping)
工作,我需要使用
import mapping
而不是
from mapping import…
谢谢你的评论-我会检查你的答案:)另外,我还有一个问题,在reload()之后,我无法使用pickle,因为,根据这一点,pickle需要采用映射导入中的
格式…
。你可能知道答案吗?根据这个答案,你每次只需要以相同的方式导入东西,而不是特定的方式。