1

我在全局包中安装了 Flask、Babel 和 Flask-Babel。运行python时我输入这个,没有错误

>>> from flaskext.babel import Babel
>>>

使用虚拟环境,启动 python 并输入我看到的相同命令

>>> from flaskext.babel import Babel
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named flaskext.babel
>>>

问题是我正在使用 Ninja-IDE,我显然被迫使用 virtualenv。只要它不破坏 Flask 包装系统,我不介意。

4

4 回答 4

2

是的!我解决了这个问题!

在 babel.py 文件旁边的全局 Lib/site-packages/flaskext 中创建一个空的_init _py 即可解决问题。

从本地环境导入 Babel 现在可以按预期工作,并且在全局环境中工作。

我们可以使用from flaskext.babel import Babelfrom babel.ext.babel import Babel两种形式。但是表格 *from flask_babel import Babel* 或 *import flask_babel* 不起作用。

请注意,我在 C:\Python27 中使用 Python 2.7 在 Windows 7 64 位上运行。在 unix 计算机上,缺少init .py 文件可能不是问题。

于 2012-12-24T15:24:10.720 回答
2

我认为您应该从 0.8 版开始导入以下 Flask 扩展:

from flask.ext.babel import Babel

我尝试了旧方法(import flaskext.babel),但它也对我不起作用。

于 2012-12-23T11:23:15.773 回答
1

导入 Flask 扩展的旧方法是:

import flaskext.babel

然而,命名空间包“对每个参与的人来说都太痛苦了”,所以现在 Flask 扩展应该可以像这样导入:

import flask_babel

flask.ext是一个特殊的包。如果你import flask.ext.babel,它将尝试上述两种变体,因此它应该在任何情况下都可以工作。

于 2012-12-23T13:34:21.320 回答
0

对于 python 3 像这样安装:pip install Flask-Babel 在安装这样的导入后:from flask.ext.babel import Babel但请注意,您会收到弃用警告,因此您可以像这样导入:from flask_babel import Babel

于 2017-08-17T13:07:39.387 回答