Пакет 'cryptography' необходим для методов аутентификации sha256_password или caching_sha2_password

Метод запроса: POST URL запроса: http://192.168.0.110/admin/login/?next=/admin/. Версия Django: 4.0.1 Тип исключения: RuntimeError Значение исключения:
Пакет 'cryptography' требуется для методов аутентификации sha256_password или caching_sha2_password Местоположение исключения: /home/chickoos/explab/ExpLab/venv/lib/python3.8/site-packages/pymysql/_auth.py, строка 143, in sha2_rsa_encrypt Исполняемый файл Python: /home/chickoos/explab/ExpLab/venv/bin/python Версия Python: 3.8.10 Python Path:
['/home/chickoos/explab/ExpLab', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/home/chickoos/explab/ExpLab/venv/lib/python3.8/site-packages']. Время сервера:

Чтобы использовать "sha256_password" или "caching_sha2_password" для аутентификации, необходимо установить дополнительную зависимость:

$ python3 -m pip install PyMySQL[rsa]

Согласно официальной документации: https://pymysql.readthedocs.io/en/latest/user/installation.html

В моем случае, который вдруг ни с того ни с сего выдал эту ошибку, я разобрался. Я забыл пароль root в MySql под MacOSX, для инициализации которого нужно зайти в системные настройки -> MySQL -> initialize DB

Вы, конечно, удалили все, что у меня было раньше, но, похоже, это дало мне 2 варианта, которые я пропустил в первый раз.

[*] Use Strong Password Encryption
MySQL 8 supports a newer, stronger authentication method. All new
installations should use this method, but older connectors and clients may be
unable to connect.

Or

[ ] Use Legacy Password Encryption
The legacy authentication method should only be used when compatibility with
MySQL 5.x connectors or clients is required.

По какой-то причине я выбрал значение по умолчанию, и это привело к исключению при попытке подключения:

RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods

Так что проблема была не в либе python, меня осенило, потому что эта ошибка также появляется, когда вы используете UI и пытаетесь подключиться, внезапно я увидел ту же ошибку (которую я также пропустил и просто нажал "продолжить").

Чтобы решить эту проблему, я инициализировал его снова (и удалил все таблицы), перейдя в раздел system preferences -> MySQL -> initialize DB и выбрал "Legacy Password"

macosx

Вернуться на верх