我对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
它应该运行平稳。
请注意,这也适用于引导程序。实际上为了找到解决方案,我在导入引导程序时遇到了错误。