python3中pip3安装出错,找不到SSL

本文介绍在Ubuntu16.04环境下安装Python3.6后遇到的pip命令无法使用SSL问题及其解决方法。主要原因是Python3编译安装时未指定–with-ssl参数,导致SSL功能不可用。通过重新编译并指定参数解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  最近在Ubuntu16.04上安装Python3.6之后,使用pip命令出现了问题,提示说找不到ssl模块,出现错误如下:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

Could not fetch URL https:*******: There was a problem confirming the ssl certificate: 
Can't connect to HTTPS URL because the SSL module is not available. - skipping

  本人安装Python3.6的操作如下:

1.wget获取安装包:
    wget http://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz

2.解压安装包:
    tar -xvzf Python-3.6.2.tgz

3.检查安装平台属性,系统是否有编译时所需要额库,以及库的版本是否满足编译需要
    ./configure

4.编译源码
    make

5.成功编译之后,安装
    sudo make install

  在安装完之后,我们希望用pip3命令来安装numpy。首先,用如下命令安装pip3:

sudo install python3-pip

  安装完之后,使用pip3安装numpy:

sudo pip install python-numpy

  但是此时就出错了,显示本文开始提到的错误,大致意思就是安装过程需要SSL,但是那个SSL找不到。

  本人查阅网上资料,发现openSSL是系统自带的,所以一定是安装了的,本人用以下命令尝试再次安装openssl:

sudo apt-get install openssl
sudo apt-get install libssl-dev

  但是安装结果显示是对其进行更新(update),这说明系统已经安装了openssl。但是pip3就是找不到ssl模块。

  本人进入python3中,然后进行ssl导入操作:

import ssl

  结果出错,错误如下:

no moudle named _ssl

  显示没有ssl模块。本人再进入python中(即系统自带的python2.7中),进行ssl导入操作:

import ssl

  发现并没有显示错误,导入正常。这说明openssl已经安装了,只是python2可以调用,新安装的python3却不能调用。

  本人查阅资料发现,在./configure过程中,如果没有加上–with-ssl参数时,默认安装的软件涉及到ssl的功能不可用,刚好pip3过程需要ssl模块,而由于没有指定,所以该功能不可用。

  解决办法是重新对python3.6进行编译安装,用一下过程来实现编译安装:

cd Python-3.6.2
./configure --with-ssl
make
sudo make install

  这样就允许安装的python3使用ssl功能模块,进入python3中,执行import ssl发现未出错,正常再次调用pip3指令来安装numpy,发现正常,问题解决!

### 解决 Python pip SSL 错误证书验证失败 当遇到 `pip` 因 SSL 问题无法正常工作时,可以采取多种方法解决问题。以下是几种有效的解决方案: #### 方法一:配置信任的 CA 证书 如果本地环境中缺少必要的根证书,可以通过安装认证机构(CA)的信任证书来修复此问题。对于 macOS 用户来说,可能需要更新系统的根证书列表。 ```bash sudo update-ca-certificates ``` 这会确保操作系统拥有最新的受信CA证书[^1]。 #### 方法二:忽略 SSL 验证(不推荐用于生产环境) 为了快速绕过 SSL 验证错误,在命令行中使用 `-cert` 参数指定自定义路径下的 `.pem` 文件作为可信证书;也可以通过设置环境变量 `PIP_CERT` 来实现相同效果。然而需要注意的是,这种方法存在安全隐患,因此仅适用于测试目的而非正式部署场景。 ```bash pip install --trusted-host pypi.python.org package_name ``` 或者完全禁用 SSL 验证(强烈建议不要这样做),可通过传递参数 `--no-check-certificate` 给 `pip` 命令执行安装操作[^2]。 #### 方法三:更换为 HTTP 或者其他可靠的 PyPI 镜像源 更改默认索引URL到一个更稳定的镜像站点上,比如阿里云提供的公共镜像服务地址 http://mirrors.aliyun.com/pypi/simple/ ,这样即使原官方服务器出现问题也能顺利下载所需资源。 编辑或创建文件 ~/.config/pip/pip.conf (Windows 系统下则是 %APPDATA%\pip\pip.ini) ```ini [global] index-url = http://mirrors.aliyun.com/pypi/simple/ timeout = 60 ``` 以上措施能够有效缓解由于网络状况不佳引起的连接超时等问题。 #### 方法四:升级 pip 和 setuptools 工具链版本 有时旧版工具可能存在兼容性缺陷从而引发异常行为,所以保持这些组件处于最新状态有助于提高稳定性并减少潜在风险。 ```bash python -m pip install --upgrade pip setuptools wheel ``` 上述四种方式可以根据实际情况组合运用以彻底消除 SSL 握手阶段产生的各类障碍,保障依赖管理流程顺畅无阻。
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值