我在全球软件包中安装了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包装系统。
答案 0 :(得分:2)
我认为您应该从0.8版本开始导入Flask扩展,如下所示:
from flask.ext.babel import Babel
我尝试了旧的方法(import flaskext.babel
),但它也不适用于我。
答案 1 :(得分:2)
呀!我解决了这个问题!
在babel.py文件旁边的全局Lib / site-packages / flaskext中创建一个空_ init _py解决了这个问题。
从本地环境导入Babel现在可以按预期工作,也可以在全局环境中工作。
我们可以使用来自flaskext.babel导入Babel 的两个表单和来自babel.ext.babel import Babel 的。但是来自flask_babel import Babel *或* import flask_babel *的表单*不起作用。
请注意,我使用C:\ Python27中的Python 2.7在Windows 7 64位上运行。缺少 init .py文件可能不是unix计算机上的问题。
答案 2 :(得分:1)
导入Flask扩展的旧方法如下:
import flaskext.babel
然而,Namespace packages“对所有参与者来说都太痛苦了”,所以现在Flask扩展应该是可导入的,如:
import flask_babel
flask.ext
是一个特殊的包。如果您import flask.ext.babel
,它会尝试上述两种变体,因此无论如何都应该有效。
答案 3 :(得分:0)
对于python 3安装如下: pip install Flask-Babel 安装导入后如下:来自于flask.ext.babel导入Babel ,但请注意您将获得弃用警告,以便您可以像这样导入:来自flask_babel import Babel