You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已安装pyOpenSSL仍报错:Django runserver_plus SSL启动失败

解决runserver_plus启用SSL时提示缺少pyOpenSSL的问题

环境与问题描述

  • 系统:Linux Mint 19.3
  • Python环境:3.8虚拟环境
  • 问题:执行python manage.py runserver_plus --cert-file cert.crt时,明明已安装pyOpenSSL(19.0.0),却报错:

    CommandError: Python OpenSSL Library is required to use runserver_plus with ssl support. Install via pip (pip install pyOpenSSL).
    不带SSL参数时runserver_plus可正常启动,需实现虚拟服务器的安全访问。


排查与解决步骤

  1. 确认虚拟环境激活一致性
    确保执行pip list和启动命令时处于同一激活的虚拟环境:

    • 激活虚拟环境(示例虚拟环境目录为venv):source venv/bin/activate
    • 验证当前Python路径:which python,需指向虚拟环境内的Python可执行文件
    • 再次执行pip list,确认pyOpenSSL出现在当前环境的包列表中
  2. 检查pyOpenSSL的可导入性
    在激活的虚拟环境中打开Python交互终端,执行以下代码:

    import OpenSSL
    print(OpenSSL.__version__)
    

    若导入失败,说明pyOpenSSL安装异常,执行完全卸载后重装:

    pip uninstall -y pyOpenSSL
    pip install pyOpenSSL==20.0.1  # 选择与Python3.8兼容的稳定版本
    
  3. 调整django-extensions与werkzeug版本
    runserver_plus属于django-extensions模块,其SSL功能依赖werkzeug,版本不兼容可能导致问题:

    pip install django-extensions==3.1.5 werkzeug==2.0.3
    

    该版本组合与Python3.8、pyOpenSSL 20.x兼容性较好

  4. 解决系统与虚拟环境的OpenSSL冲突
    若系统全局OpenSSL与虚拟环境内的库存在冲突,启动前设置环境变量指定库路径:

    export LD_LIBRARY_PATH=/path/to/venv/lib/python3.8/site-packages/OpenSSL:$LD_LIBRARY_PATH
    python manage.py runserver_plus --cert-file cert.crt
    

    替换/path/to/venv为你的虚拟环境实际路径

  5. 验证证书有效性
    确保cert.crt是有效SSL证书,无证书可生成自签名证书:

    openssl req -x509 -newkey rsa:4096 -nodes -out cert.crt -keyout cert.key -days 365
    

    启动时同时指定证书和密钥:

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

内容的提问来源于stack exchange,提问作者aspanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 11:55:20