繁体   English   中英

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

[英]How to reload python module in flask?

我有一个名为mapping.py的文件,其中有一个字典methodMapping 在我的Web应用程序中,键值对被添加到methodMapping字典中。 将其附加到mapping.pyreload(mapping)调用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'

然而,当我尝试访问methodMapping['key2']从flaskServer.py, KeyError异常。 当我重新启动服务器时,它能够找到methodMapping['key2']

注意:我已经检查过此链接也尝试过app.run(debug=True, port=8000) ,但这对我的应用程序来说是不可能的,因为我正在使用具有Tensorflow后端的keras,并且设置debug = True将加载两次并导致ValueError: Tensor tensor(...) is not part of the graph错误的ValueError: Tensor tensor(...) is not part of the graph

任何意见或建议,不胜感激。 谢谢。

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

如果找到答案,则应将其放在“答案”中而不是在注释中。 ;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM