You need to enable JavaScript to run this app. 如何修复Digital Ocean Droplet中Python 3.6的SSL模块缺失问题
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Digital Ocean Droplet中Python 3.6的SSL模块缺失问题

问题根因定位
  • 你遇到的连锁报错本质是两个独立的运行环境错位:
    1. 你手动编译安装的Python 3.6在初始安装时没有绑定系统OpenSSL开发库,导致解释器内置的ssl模块缺失,所有pip发起的HTTPS请求都会被TLS校验拦截,触发SSL相关警告和重试失败。
    2. 你执行django-admin --version返回的3.1.6版本,是全局系统路径下安装的Django,和你当前调用的python3.6解释器不属于同一套运行环境,因此才会出现命令行能识别django管理命令,但Python解释器找不到django模块的路径断层问题。
分步修复流程

1. 修复Python 3.6的SSL模块缺失

  • 先安装编译Python 3.6依赖的全套系统库:
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev
  • 进入之前存放Python 3.6.0源码的目录,重新配置编译参数,明确关联系统OpenSSL路径:
cd /你的Python3.6源码存储目录
./configure --enable-optimizations --with-openssl=/usr --with-ssl-default-suites=openssl
make -j $(nproc)
sudo make altinstall

注意:必须使用altinstall安装,不要用默认的install,避免覆盖系统自带的Python3软链,破坏系统原生工具的运行依赖。

  • 安装完成后校验ssl模块状态,无输出报错即代表修复生效:
python3.6 -c "import ssl; print(ssl.OPENSSL_VERSION)"

2. 修正pipenv虚拟环境的解释器错配

  • 进入项目根目录,删除之前创建的路径错位的旧pipenv虚拟环境:
cd /你的项目根目录
pipenv --rm
  • 重新创建pipenv环境,强制绑定修复完成的Python 3.6解释器:
pipenv --python $(which python3.6)
  • 激活虚拟环境后校验路径一致性:
pipenv shell
which python
python -V
python -c "import sys; print(sys.executable)"

校验标准:返回的Python版本必须为3.6.0,解释器路径必须指向pipenv的虚拟环境目录,不能是系统全局的Python路径。

3. 对齐Django模块的环境匹配

  • 保持pipenv虚拟环境激活状态,直接通过虚拟环境内的pip安装项目依赖,不要调用全局的pip3.6/pip3:
pip install 你项目需要的Django版本号
  • 验证模块加载状态:
python manage.py --version

无报错即代表当前环境模块路径完全对齐,后续执行makemigrations等管理命令不会再出现模块找不到的问题。

部署阶段的避坑提醒
  • 激活pipenv虚拟环境后,不要刻意使用python3.6、pip3.6这类带版本前缀的全局命令,这类命令会绕过虚拟环境的路径重定向,直接调用系统全局解释器,是出现路径错位的最常见原因。
  • 后续配置gunicorn启动服务时,必须通过pipenv run gunicorn调用虚拟环境内的服务,或者直接填写虚拟环境内gunicorn的绝对路径,不要使用全局安装的gunicorn,否则会再次出现解释器版本不匹配、找不到Django模块的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 22:54:00