Ошибка Django runserver_plus pyOpenSSL не установлен, хотя он есть

Попробовал запустить runserver_plus, используя ssl:

python manage.py runserver_plus --cert-file cert.crt

Затем я получаю следующую ошибку:

CommandError: Python OpenSSL Library is required to use runserver_plus with ssl support. Install via pip (pip install pyOpenSSL).

Но дело в том, что pyOpenSSL уже установлен в моем окружении. Вот вывод списка pip list:

asgiref (3.5.2)
certifi (2022.9.24)
cffi (1.15.1)
charset-normalizer (2.1.1)
cryptography (38.0.3)
defusedxml (0.7.1)
Django (3.0.14)
django-extensions (2.2.5)
idna (3.4)
oauthlib (3.2.2)
Pillow (7.0.0)
pip (9.0.1)
pkg-resources (0.0.0)
pycparser (2.21)
PyJWT (2.6.0)
pyOpenSSL (19.0.0)
python3-openid (3.2.0)
pytz (2022.6)
requests (2.28.1)
requests-oauthlib (1.3.1)
setuptools (39.0.1)
six (1.16.0)
social-auth-app-django (3.1.0)
social-auth-core (4.3.0)
sqlparse (0.4.3)
urllib3 (1.26.12)
Werkzeug (0.16.0)
wheel (0.38.4)

Скриншот:

ruserver_plus error

Заранее спасибо за любую помощь!

Я пытался установить различные версии pyOpenSSL, как более ранние, так и более поздние. Безуспешно.

Runserver_plus успешно запускается без дополнительных параметров, но моя цель - безопасный доступ к виртуальному серверу.

Такая проблема может возникнуть, когда необходимо перекомпилировать криптографию с правильным openssl.

Для этого вы можете проверить криптографию docs.

$ pip uninstall pyopenssl
$ pip uninstall cryptography
$ env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" pip install cryptography
$ pip install pyopenssl
$ python manage.py shell_plus
$ python manage.py runserver_plus --cert=foo.cert

Итак, дело было в устаревшем pip. Я думал, что достаточно обновить pip через утилиту apt, но это не так. На официальном сайте Pip есть специальный скрипт для обновления. После завершения обновления через скрипт необходимо переустановить PyOpenSSL. В результате runserver_plus должен запуститься правильно.

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