如何在不抛出键错误的情况下从 flask_babel 导入 _
How to import _ from flask_babel without throwing key error
我正在将一个子模块导入到父模块中,但遇到了关键错误。
子模块代码(p运行ed)如下
from flask_babel import _
#def _(intext): return intext
... code ...
class Result:
... code ...
msglib = {
'ok':
_('Success'),
...
}
错误信息是:-
出现异常:KeyError
'babel'
文件“C:...\solution\cradle\messaging.py”,第 196 行,在 >>
_('Success :)'),
文件“C:\Users\Mark Kortink\OneDrive\dev\metapplica_dev\entity_frame.py”,第 15 行,位于
从 solution.cradle.messaging 导入结果
相关事实是:-
- 子模块从flask_babel导入_。
- 父模块从子模块导入一个class结果。
- 父模块曾经工作,我所做的只是将子模块移动到兄弟目录。
- 如果我直接 运行 子模块工作正常,_ 工作。
- 当我 运行 父模块时,子模块在导入期间抛出一个关键错误。
- 在字典 msglib.'babel' 中查找 'babel' 时出现关键错误。
- 如果我用我自己的函数替换 _ 一切正常。
这对我来说很奇怪,我不明白为什么首先在导入过程中搜索 'babel'。移动子模块应该没有什么区别,因为我更改了关联的导入。提供我自己的 _ 不会触发错误,因此在这种情况下无法搜索 'babel'???
任何人都可以提出这里可能发生的事情吗?
我的 Flask 应用程序使用 Babel 扩展。仔细检查以下错误消息表明关键错误发生在 Babel 代码中,而不是我的代码中。
文件“C:\Users\Mark Kortink\OneDrive\dev\metapplica\venv\lib\site-packages\flask_babel_init_.py”,第 548 行,在 gettext 中
t = get_translations()
文件“C:\Users\Mark Kortink\OneDrive\dev\metapplica\venv\lib\site-packages\flask_babel_init_.py”,第 217 行,在 get_translations
中
babel = current_app.extensions['babel']
我的代码是 运行 在我必须为 Flask 初始化的围栏环境中。虽然我不完全理解这个问题是通过推送应用程序上下文并将以下代码添加到我的初始化脚本来解决问题的。
from flask_babel import Babel
babel = Babel()
babel.init_app(app)
我正在将一个子模块导入到父模块中,但遇到了关键错误。
子模块代码(p运行ed)如下
from flask_babel import _
#def _(intext): return intext
... code ...
class Result:
... code ...
msglib = {
'ok':
_('Success'),
...
}
错误信息是:-
出现异常:KeyError 'babel' 文件“C:...\solution\cradle\messaging.py”,第 196 行,在 >> _('Success :)'), 文件“C:\Users\Mark Kortink\OneDrive\dev\metapplica_dev\entity_frame.py”,第 15 行,位于 从 solution.cradle.messaging 导入结果
相关事实是:-
- 子模块从flask_babel导入_。
- 父模块从子模块导入一个class结果。
- 父模块曾经工作,我所做的只是将子模块移动到兄弟目录。
- 如果我直接 运行 子模块工作正常,_ 工作。
- 当我 运行 父模块时,子模块在导入期间抛出一个关键错误。
- 在字典 msglib.'babel' 中查找 'babel' 时出现关键错误。
- 如果我用我自己的函数替换 _ 一切正常。
这对我来说很奇怪,我不明白为什么首先在导入过程中搜索 'babel'。移动子模块应该没有什么区别,因为我更改了关联的导入。提供我自己的 _ 不会触发错误,因此在这种情况下无法搜索 'babel'???
任何人都可以提出这里可能发生的事情吗?
我的 Flask 应用程序使用 Babel 扩展。仔细检查以下错误消息表明关键错误发生在 Babel 代码中,而不是我的代码中。
文件“C:\Users\Mark Kortink\OneDrive\dev\metapplica\venv\lib\site-packages\flask_babel_init_.py”,第 548 行,在 gettext 中
t = get_translations()
文件“C:\Users\Mark Kortink\OneDrive\dev\metapplica\venv\lib\site-packages\flask_babel_init_.py”,第 217 行,在 get_translations
中
babel = current_app.extensions['babel']
我的代码是 运行 在我必须为 Flask 初始化的围栏环境中。虽然我不完全理解这个问题是通过推送应用程序上下文并将以下代码添加到我的初始化脚本来解决问题的。
from flask_babel import Babel
babel = Babel()
babel.init_app(app)