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

  最近在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,发现正常,问题解决!

  • 38
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 38
    评论
这个问题通常是由于缺少所需的SSL模块导致的。要解决这个问题,你可以尝试以下几种方法: 1. 首先确保你已经安装了openssl包和libssl-dev库。你可以使用以下命令来安装它们: ``` sudo apt-get install openssl libssl-dev ``` 2. 如果已安装openssl包和libssl-dev库,但问题仍然存在,那么可能是因为Python没有正确链接到SSL库。你可以尝试重新编译Python以确保它正确链接到SSL库。以下是一些步骤: - 下载并解压Python的源代码。 - 在终端进入解压后的Python源代码目录,并运行以下命令: ``` ./configure --with-ssl make sudo make install ``` - 这将重新编译并安装Python,并在编译过程正确链接到SSL库。 3. 如果上述方法都不起作用,你可以尝试使用pyenv来安装和管理不同版本的Python。pyenv可以帮助你轻松地切换Python版本,并且它通常能够解决与依赖关系有关的问题。你可以按照以下步骤安装pyenv: - 首先,安装pyenv的依赖项。在终端运行以下命令: ``` sudo apt-get update sudo apt-get install git curl build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl ``` - 然后,使用以下命令来安装pyenv: ``` curl https://pyenv.run | bash ``` - 安装完成后,将以下命令添加到你的shell配置文件(如~/.bashrc或~/.zshrc): ``` export PATH="/home/your_username/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" ``` - 最后,重新打开终端或运行以下命令来使配置更改生效: ``` source ~/.bashrc # 或 source ~/.zshrc ``` - 现在,你可以使用pyenv来安装和切换到Python 3.9版本: ``` pyenv install 3.9.0 pyenv global 3.9.0 ``` 以上是几种可能解决此问题的方法。如果问题仍然存在,请提供更多关于你的系统环境和错误消息的详细信息,以便我能够给出更具体的建议。
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值