使用带有virtualenv的Flask-Babel失败

时间:2012-12-22 17:13:07

标签: python flask virtualenv babel flask-extensions

我在全球软件包中安装了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 个答案:

答案 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