2

我正在尝试使用Enferno 框架创建一个小型烧瓶应用程序,但是当我尝试注册用户时,我收到一个似乎由 passlib 库生成的错误。我不明白这是我做的事情还是图书馆本身的错误。

这是完整的追溯:

Traceback (most recent call last):
    File "/home/el3k0n/.local/lib/python3.4/site-packages/flask/app.py", line 1836, in __call__
        return self.wsgi_app(environ, start_response)
    File "/home/el3k0n/.local/lib/python3.4/site-packages/flask/app.py", line 1820, in wsgi_app
        response = self.make_response(self.handle_exception(e))
    File "/home/el3k0n/.local/lib/python3.4/site-packages/flask/app.py", line 1403, in handle_exception
        reraise(exc_type, exc_value, tb)
    File "/home/el3k0n/.local/lib/python3.4/site-packages/flask/_compat.py", line 33, in reraise
        raise value
    File "/home/el3k0n/.local/lib/python3.4/site-packages/flask/app.py", line 1817, in wsgi_app
        response = self.full_dispatch_request()
    File "/home/el3k0n/.local/lib/python3.4/site-packages/flask/app.py", line 1477, in full_dispatch_request
        rv = self.handle_user_exception(e)
    File "/home/el3k0n/.local/lib/python3.4/site-packages/flask/app.py", line 1381, in handle_user_exception
        reraise(exc_type, exc_value, tb)
    File "/home/el3k0n/.local/lib/python3.4/site-packages/flask/_compat.py", line 33, in reraise
        raise value
    File "/home/el3k0n/.local/lib/python3.4/site-packages/flask/app.py", line 1475, in full_dispatch_request
        rv = self.dispatch_request()
    File "/home/el3k0n/.local/lib/python3.4/site-packages/flask_debugtoolbar/__init__.py", line 125, in dispatch_request
        return view_func(**req.view_args)
    File "/home/el3k0n/.local/lib/python3.4/site-packages/flask_security/decorators.py", line 205, in wrapper
        return f(*args, **kwargs)
    File "/home/el3k0n/.local/lib/python3.4/site-packages/flask_security/views.py", line 117, in register
        user = register_user(**form.to_dict())
    File "/home/el3k0n/.local/lib/python3.4/site-packages/flask_security/registerable.py", line 28, in register_user
        kwargs['password'] = encrypt_password(kwargs['password'])
    File "/home/el3k0n/.local/lib/python3.4/site-packages/flask_security/utils.py", line 151, in encrypt_password
        return _pwd_context.encrypt(signed)
    File "/home/el3k0n/.local/lib/python3.4/site-packages/passlib/context.py", line 2495, in encrypt
        return self._get_record(scheme, category).encrypt(secret, **kwds)
    File "/home/el3k0n/.local/lib/python3.4/site-packages/passlib/utils/handlers.py", line 558, in encrypt
        self.checksum = self._calc_checksum(secret)
    File "/home/el3k0n/.local/lib/python3.4/site-packages/passlib/handlers/bcrypt.py", line 285, in _calc_checksum
        return self._calc_checksum_backend(secret)
    File "/home/el3k0n/.local/lib/python3.4/site-packages/passlib/utils/handlers.py", line 1458, in _calc_checksum_backend
        return self._calc_checksum_backend(secret)
    File "/home/el3k0n/.local/lib/python3.4/site-packages/passlib/handlers/bcrypt.py", line 333, in _calc_checksum_pybcrypt
        hash = _bcrypt.hashpw(secret, config)
TypeError: hashpw() argument 1 must be str, not bytes
4

1 回答 1

1

我刚碰到这个。事实证明,我已经在我的 virtualenv 中 bcrypt安装了两者。检查 bcrypt 上的哪个版本。通过删除,我能够停止抛出此错误。python-bcryptpasslib.hash.bcryptpython-bcrypt

于 2016-04-02T18:19:09.153 回答