Python3.7提示错误 ModuleNotFoundError: No module named '_ssl'

     首先,出现这个错误,先看清楚自己的python版本是多少,目前你根据这个错误信息百度到的很多资料都是说让你去注释python/Moudle下的setup.dist文件中的209行左右的内容,针对这个现象,python3.7.4的安装文件中已经将这部分注释掉了,至于3.6中有没有注释,可以自行验证下,不要盲目的一顿操作猛如虎,环境玩崩溃了,就得重装了。

       安装Python3.7查阅资料得知需要的openssl版本最低为1.0.2,可是CentOS6默认安装的ssl版本是远低于1.0.2的,即使小编自己从官方下载的CentOS7的镜像,默认安装的ssl版本也才1.0.2,理论上CentOS7就没问题呀,可是小编在实际使用python3的时候,发现即使ssl版本是1.0.2,在引入import ssl的时候,还是会提示ModuleNotFoundError: No module named '_ssl'。于是整合网上的资源和解决方案,整理出这个python3.7.4的安装笔记。(如果你当前已经有下载并且安装了,但是出现了标题中的问题,那么你可以从本文的第二章节开始)

  1. 下载python的安装包
    1. 官方下载地址: https://www.python.org/ftp/python/
    2. 可以先下载后,然后上传到linux上解压安装;
    3. 也可以直接在linux上下载,指令:wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz 
    4. 创建目录, mkdir -p /usr/local/python3
    5. 解压python安装文件, tar -zxvf Python-3.7.4.tgz /usr/loca/python3
  2. 依赖环境准备(PS:安装环境中可能出现的错误,我都当做是依赖的环境,提前先准备好,否则每失败一次,都要回到这里step3重新执行configure命令重头来过,很浪费时间)
    1. 博客标题中的问题No module named '_ssl'的解决方法
      # 1. 安装对应的依赖库
      yum install -y zlib zlib-dev openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++
      
      # 2. 下载openssl安装文件
      wget http://www.openssl.org/source/openssl-1.1.1.tar.gz
      
      # 3. 解压openssl,并进入openssl的目录
      tar -zxvf openssl-1.1.1.tar.gz
      cd openssl-1.1.1
      
      # 4. 执行config脚本生成预编译文件
      ./config --prefix=$HOME/openssl shared zlib
      
      # 5. 编译、安装
      make && make install
      
      # 6. 设置环境变量LD_LIBRARY_PATH
      echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/openssl/lib" >> $HOME/.bash_profile
      source $HOME/.bash_profile
    2. 安装时报错ModuleNotFoundError: No module named '_ctypes'的解决办法
      1. 安装依赖库    yum install libffi-devel 
    3. pip3 install时报错“pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.”
      1. 安装依赖库   yum install libffi-devel -y
  3. 二进制文件安装
    1. 进入安装文件目录  cd /usr/local/python3/Python-3.7.4
    2. 运行configure脚本生成makefile文件(这条指令依赖Step2.1的openssl安装配置的环境变量)  ./configure --prefix=/usr/local/python3 --with-openssl=$HOME/openssl
    3.     ./configure --enable-optimizations --prefix=/usr/local/python3
    4. ./configure 后参数的意义参见参数说明
  4. 编译安装   make && make install
    1. 这一步需要留意安装过程中出现的错误,对应的错误需要对应的百度找到解决方案,否则就可能导致你在使用过程中会出现先莫名其妙的错误,或者去官方的论坛去溜达溜达说不定也会有一番收获。
  5. 清理临时文件  make clean
  6. 创建软连接
    1. ln -sf /usr/local/python3/bin/python3.7 /usr/bin/python3
    2. ln -sf /usr/local/python3/bin/pip3.7 /usr/bin/pip3
  7. 至此python3.7.4就已经安装完成了,你可以属于指令 python3 -V来测试下,是否能正确输出python的版本
  8. 验证标题中的问题解决结果,如下图所示:

题外话,总结:

由于CentOS求稳,所以默认安装的linux内核版本都较低,所以在实际应用中,总会出现各种各样的问题,而我们作为开发出于学习探索的目的,强烈建议使用ubuntu,两个字形容,真香!!!

发布了69 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Min_Monk/article/details/103892714
今日推荐