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