导入错误:没有名为 flask.ext.login 的模块



我对flask_login模块有问题。

我已经成功安装了flask_login模块。同样在命令提示符下,我可以轻松运行此脚本而不会出错:

Python 2.7 (r27:82525, Jul  4 2010, 07:43:08) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from flask.ext.login import LoginManager

但是当我运行此脚本时:

from flask import Flask
from flask.ext.login import LoginManager
app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello World! Welcome"
if __name__ == "__main__":
    app.run()

我收到错误:

ImportError: No module named flask.ext.login

我犯了什么错误。我对这个烧瓶很陌生。提前谢谢。

如果以下不起作用:

from flask.ext.login import LoginManager

请尝试以下操作:

from flask_login import LoginManager

这是新的惯例。

要查找烧瓶登录版本,您可以在终端中运行以下命令。只需更改名称即可知道其他软件包的版本。

pip show flask-login

安装 pip,然后使用以下命令:

C:Python27scripts>pip install Flask-Login

如果您已经安装了烧瓶登录

$pip install flask_login

尝试替换

from flask.ext.login import LoginManager

from flask_login import LoginManager

这是一个环境错误 - 无论您使用什么IDE,都没有正确设置PYTHONPATH。您可以通过创建一个小型测试文件来测试这一点:test.py,其中包含以下内容:

from os import environ
print environ.get('PYTHONPATH')

如果 PYTHONPATH 不包含保存 Flask-Login 包的目录,那么这就是问题所在。

最初我在虚拟环境中安装了flask_login。我发现它试图在机器上找到。所以我将其全局安装为;

mycomp# pip install -u flask_login

这解决了问题。

对我来说,简单的解决方案是从flask.ext.login中删除 .ext,而只键入 flask_login 。这适用于 python 3,并确保您已正确安装所需的软件包。

奇怪 但是当我尝试从命令提示符运行脚本时,它起作用

C:UsersdibDesktop>python foo.py
 * Running on http://127.0.0.1:5000/
127.0.0.1 - - [11/Feb/2014 18:03:52] "GET / HTTP/1.1" 200 -

但是当我尝试从 python 默认 IDE 运行时pressing f5它不起作用。

解决方案很简单。不同版本的烧瓶使用不同的代码运行,因此只需将代码:flask.ext.login更改为代码:flask_login

它应该运行平稳。

请注意,这也适用于引导程序。实际上为了找到解决方案,我在导入引导程序时遇到了错误。

最新更新