python出现modify怎么办
解决Python找不到ssl模块问题 No module named _ssl的方法python安装完毕后,提示找不到ssl模块:
|
[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包
|
[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
|
[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文件
|
vi / src / python - 2.7 . 15 / modules / setup |
修改结果如下:
|
# 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. 重新编译
进入源码目录,重新编译安装
|
[www@pythontab.com ~]$ cd / src / python - 2.7 . 15 / [www@pythontab.com ~]$ make [www@pythontab.com ~]$ make install |
5. 测试,已可正常使用。
|
[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依赖
|
ll / usr / bin | grep python mv / usr / bin / python / usr / bin / python2. 7 |
7 删除旧的软链接,创建新的软链接到最新的python
|
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版本指向以前的旧版本
|
# 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
下载相关文件
|
curl https: / / bootstrap.pypa.io / get - pip.py - o get - pip.py |
执行
|
/ usr / local / python / bin / python3 get - pip.py |
添加环境变量
|
vim ~ / .bash_profile |
添加下面这条参数
|
export path = / usr / local / python / bin :$path |
保存
|
source ~ / .bash_profile |
测试
执行
|
[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
|
#!/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