您的位置:首页 > 脚本大全 > > 正文

python出现modify怎么办(解决Python找不到ssl模块问题 No module named _ssl的方法)

更多 时间:2021-10-12 00:54:19 类别:脚本大全 浏览量:2516

python出现modify怎么办

解决Python找不到ssl模块问题 No module named _ssl的方法

python安装完毕后,提示找不到ssl模块:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • [www@pythontab.com ~]$ python
  • python 2.7.15 (default, oct 23 2018, 18:08:43)
  • [gcc 4.4.7 20120313 (red hat 4.4.7-23)] on linux2
  • type "help", "copyright", "credits" or "license" for more information.
  • >>> import ssl
  • traceback (most recent call last):
  • file "<stdin>", line 1, in <module>
  • file "/usr/local/python27/lib/python2.7/ssl.py", line 60, in <module>
  • import _ssl # if we can't import it, let the error propagate
  • importerror: no module named _ssl
  • >>>
  • 解决方法:

    1. 查看openssl安装包,发现缺少openssl-devel包

  • ?
  • 1
  • 2
  • 3
  • 4
  • [www@pythontab.com ~]$ rpm -aq|grep openssl
  • openssl-0.9.8e-20.el5
  • openssl-0.9.8e-20.el5
  • [www@pythontab.com ~]$
  • 2. yum安装openssl-devel

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • [www@pythontab.com ~]$ yum install openssl-devel -y
  • #查看安装结果
  • [www@pythontab.com ~]$ rpm -aq|grep openssl
  • openssl-devel-1.0.1e-57.el6.x86_64
  • openssl-1.0.1e-57.el6.x86_64
  • 3. 重新编译python

    修改setup文件

  • ?
  • 1
  • vi /src/python-2.7.15/modules/setup
  • 修改结果如下:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • # socket module helper for socket(2)
  • _socket socketmodule.c timemodule.c
  • # socket module helper for ssl support; you must comment out the other
  • # socket line above, and possibly edit the ssl variable:
  • #ssl=/usr/local/ssl
  • _ssl _ssl.c \
  • -duse_ssl -i$(ssl)/include -i$(ssl)/include/openssl \
  • -l$(ssl)/lib -lssl -lcrypto
  • 4. 重新编译

    进入源码目录,重新编译安装

  • ?
  • 1
  • 2
  • 3
  • [www@pythontab.com ~]$ cd /src/python-2.7.15/
  • [www@pythontab.com ~]$ make
  • [www@pythontab.com ~]$ make install
  • 5. 测试,已可正常使用。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • [www@pythontab.com ~]$ python
  • python 2.7.15 (default, oct 23 2018, 19:08:43)
  • [gcc 4.4.7 20120313 (red hat 4.4.7-23)] on linux2
  • type "help", "copyright", "credits" or "license" for more information.
  • >>> import ssl
  • >>>
  • 注:如需保留旧版本的就不需要执行 6 .7两部

    6 重命名旧版本的python依赖

  • ?
  • 1
  • 2
  • ll /usr/bin | grep python
  • mv /usr/bin/python /usr/bin/python2.7
  • 7 删除旧的软链接,创建新的软链接到最新的python

  • ?
  • 1
  • 2
  • 3
  • rm -rf /usr/bin/python
  • ln -s /usr/local/bin/python3.6 /usr/bin/python
  • python -v
  • 使用yum命令报错file "/usr/bin/yum", line 30 except keyboardinterrupt, e:

    问题出现原因:

    yum包管理是使用python2.x写的,将python2.x升级到python3.1.3以后,由于python版本语法兼容性导致问题出现

    解决办法:

    修改yum配置文件,将python版本指向以前的旧版本

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • # vi /usr/bin/yum
  • #!/usr/bin/python2.7
  • 修改urlgrabber-ext-down文件,更改python版本
  •  
  • # vi /usr/libexec/urlgrabber-ext-down
  • #!/usr/bin/python2.7
  • could not fetch url https://pypi.python.org/simple/six/: there was a problem confirming the ssl certificate: can't connect to https url because the ssl module is not available. - skipping
  • 如需安装pip

    下载相关文件

  • ?
  • 1
  • curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
  • 执行

  • ?
  • 1
  • /usr/local/python/bin/python3 get-pip.py
  • 添加环境变量

  • ?
  • 1
  • vim ~/.bash_profile
  • 添加下面这条参数

  • ?
  • 1
  • export path=/usr/local/python/bin:$path
  • 保存

  • ?
  • 1
  • source ~/.bash_profile
  • 测试

    执行

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • [root@huo ~]# python3
  • python 3.6.5 (default, apr 1 2018, 20:41:34)
  • [gcc 4.8.5 20150623 (red hat 4.8.5-16)] on linux
  • type "help", "copyright", "credits" or "license" for more information.
  • >>>
  • 执行脚本如下:

    vim install_python.sh

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • #!/bin/bash
  • echo "正在安装相关组件"
  • yum install -y openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc-c++ gcc openssl-devel
  •  
  • echo "下载安装包"
  • wget https://www.python.org/ftp/python/3.6.5/python-3.6.5.tgz
  •  
  • echo "正在解压安装包"
  • tar -xf python-3.6.5.tgz -c /root/ && cd /root/python-3.6.5/
  •  
  • echo "添加ssl支持"
  • cat >> /root/python-3.6.5/modules/setup.dist <<"eof"
  • _socket socketmodule.c
  •  
  • ssl=/usr/local/ssl
  • _ssl _ssl.c \
  • -duse_ssl -i$(ssl)/include -i$(ssl)/include/openssl \
  • -l$(ssl)/lib -lssl -lcrypto
  • eof
  •  
  • echo "正在编译安装python"
  • ./configure --prefix=/usr/local/python && make && make install
  • cd /root
  •  
  • echo "删除安装包"
  • rm -rf /root/python-3.6.5.tgz && rm -rf /root/python-3.6.5
  •  
  • echo "正在添加环境变量"
  • echo "export path=/usr/local/python/bin:$path">> ~/.bash_profile
  • source ~/.bash_profile
  •  
  • echo "安装完成,请执行python3进行测试"
  • 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。

    原文链接:https://www.pythontab.com/html/2018/pythonjichu_1024/1366.html

    标签:Python ssl模块
    您可能感兴趣