Установил bcrypt в windows для python и passlib- все еще есть MissingBackendError
Попытка заставить bcrypt работать на Windows была проблемой. Наконец-то я нашел поток reddit, указывающий на дистрибутив Windows bcrypt ( http://www.reddit.com/r/flask/comments/15q5xj/anyone_have_a_working_version_of_flaskbcrypt_for/), и он, наконец, установлен, см. Ниже!
C:\pyprojects\flask-security>flask\scripts\pip list
blinker (1.3)
chardet (2.2.1)
decorator (3.4.0)
Flask (0.9)
Flask-Login (0.2.10)
Flask-Mail (0.7.6)
Flask-Principal (0.4.0)
Flask-Security (1.7.3)
Flask-SQLAlchemy (0.16)
Flask-WhooshAlchemy (0.55a)
Flask-WTF (0.8.4)
itsdangerous (0.24)
Jinja2 (2.7.2)
lamson (1.3.4)
MarkupSafe (0.19)
passlib (1.6.2)
pip (1.5.4)
py-bcrypt (0.4)
pywin32 (219)
setuptools (0.6c11)
SQLAlchemy (0.7.9)
sqlalchemy-migrate (0.7.2)
Tempita (0.5.2)
Werkzeug (0.9.4)
Whoosh (2.6.0)
WTForms (1.0.5)
Тем не менее, при попытке использовать его с passlib я по-прежнему получаю следующую ошибку:
passlib.exc.MissingBackendError
MissingBackendError: no bcrypt backends available - please install py-bcrypt
вот полный след:
File "C:\pyprojects\flask-security\flask\lib\site-packages\flask\app.py", line 1701, in __call__
return self.wsgi_app(environ, start_response)
File "C:\pyprojects\flask-security\flask\lib\site-packages\flask\app.py", line 1689, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "C:\pyprojects\flask-security\flask\lib\site-packages\flask\app.py", line 1687, in wsgi_app
response = self.full_dispatch_request()
File "C:\pyprojects\flask-security\flask\lib\site-packages\flask\app.py", line 1360, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\pyprojects\flask-security\flask\lib\site-packages\flask\app.py", line 1358, in full_dispatch_request
rv = self.dispatch_request()
File "C:\pyprojects\flask-security\flask\lib\site-packages\flask\app.py", line 1344, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\pyprojects\flask-security\flask\lib\site-packages\flask_security\decorators.py", line 205, in wrapper
return f(*args, **kwargs)
File "C:\pyprojects\flask-security\flask\lib\site-packages\flask_security\views.py", line 117, in register
user = register_user(**form.to_dict())
File "C:\pyprojects\flask-security\flask\lib\site-packages\flask_security\registerable.py", line 28, in register_user
kwargs['password'] = encrypt_password(kwargs['password'])
File "C:\pyprojects\flask-security\flask\lib\site-packages\flask_security\utils.py", line 151, in encrypt_password
return _pwd_context.encrypt(signed)
File "C:\pyprojects\flask-security\flask\lib\site-packages\passlib\context.py", line 2495, in encrypt
return self._get_record(scheme, category).encrypt(secret, **kwds)
File "C:\pyprojects\flask-security\flask\lib\site-packages\passlib\utils\handlers.py", line 558, in encrypt
self.checksum = self._calc_checksum(secret)
File "C:\pyprojects\flask-security\flask\lib\site-packages\passlib\handlers\bcrypt.py", line 285, in _calc_checksum
return self._calc_checksum_backend(secret)
File "C:\pyprojects\flask-security\flask\lib\site-packages\passlib\utils\handlers.py", line 1454, in _calc_checksum_backend
self.set_backend()
File "C:\pyprojects\flask-security\flask\lib\site-packages\passlib\utils\handlers.py", line 1442, in set_backend
raise exc.MissingBackendError(cls._no_backends_msg())
MissingBackendError: no bcrypt backends available - please install py-bcrypt
Кто-нибудь знает, что мне не хватает?
1 ответ
Нашел, что происходит. Я использовал инструкцию virtualenv - учебник по мега-колбе. Хотя, когда я пошел, чтобы начать новый проект, я просто скопировал папку в новое место, переименовал ее и продолжил свой веселый путь. Оказывается, что Пип все еще устанавливал вещи в один из моих старых проектов, на которые я случайно наткнулся, выполнив:
pip show py-bcrypt
Который показал путь к одному из моих старых проектов.
Как только я сказал pip установить файл wheel непосредственно в проект, в котором я его хотел, все работало отлично. Увидеть ниже:
pip install py_bcrypt-0.4-cp27-none-win32.whl -t c:\path\to-desired-project\flask\lib\site-packages
Теперь, если бы я только мог понять, как навсегда изменить каталог установки pip... lol