2012-08-01 34 views
12

Có vẻ như việc lắp đặt bình chứa-đăng nhập có vấn đề. Mặc dù một thành công cài đặt bằng cách sử dụng dưới đâyMới vào bình và Flask-Login - ImportError: Không có module nào có tên đăng nhập

pip install flask-login 

tập tin app.py của tôi:

from flaskext.login import LoginManager 
lm = LoginManager() 

tôi nhận được lỗi này:

ImportError: No module named login 

Vì vậy, làm thế nào để giải quyết

Trả lời

21

Có một quá trình chuyển đổi của cách nhập khẩu mở rộng bình:

Instead we now recommend naming packages flask_foo instead of the now deprecated flaskext.foo . Flask 0.8 introduces a redirect import system that lets uses import from flask.ext.foo and it will try flask_foo first and if that fails flaskext.foo .

Flask extensions should urge users to import from flask.ext.foo instead of flask_foo or flaskext_foo so that extensions can transition to the new package name without affecting users. (Source)

Sử dụng cách này nhập khẩu với Flask 0,8 hoặc sau này:

from flask.ext.login import LoginManager 
+1

Chỉ cần một lưu ý, nếu bạn muốn làm theo hướng dẫn phong cách nhập khẩu của Google (http: //google-styleguide.googlecode. com/svn/trunk/pyguide.html) bạn sẽ cần thực hiện nhập bằng tên được gạch dưới, như "import flask_login". – skyler

+0

@skyler là phong cách nhập khẩu duy nhất có hiệu quả đối với tôi (và Google khá là đáng sợ về kết quả khác). Cảm ơn! –

-3
sudo pip install Flask-Security 
+2

Làm cách nào để trả lời câu hỏi này? – florisla

2

Đối với bình đăng nhập 0.3.2 và sau đó, đây là con đường:

from flask_login import LoginManager 

để tìm ra phiên bản bình-đăng nhập, bạn có thể chạy lệnh sau trong thiết bị đầu cuối. Chỉ cần thay đổi tên để biết phiên bản của các gói khác.

pip show flask-login 

Lưu ý: - không chắc chắn từ đó phiên bản của bình động đăng nhập Công ước này được theo sau

Các vấn đề liên quan