要解决的问题
想在pop3中安装pymysql用于支持mysql连接输入命令:
pop3 install pymysql
提示: ssl无法使用
返回错误的原文如:
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
Coud build the ssl module!
python3.7安装(解决ssl的问题)
原因:
ssl没有正确被集成到python3导致,需要重装python3
注:原著坑很多,泰山鲁结合自己实践做了优化
1) 安装准备
yum -y install zlib zlib-devel
yum -y install bzip2 bzip2-devel
yum -y install ncurses ncurses-devel
yum -y install readline readline-devel
yum -y install openssl openssl-devel
yum -y install openssl-static
yum -y install xz lzma xz-devel
yum -y install sqlite sqlite-devel
yum -y install gdbm gdbm-devel
yum -y install tk tk-devel
2) 安装libressl代替openssl-devel
由于系统的openssl是1.0.1的版本,对于python3.7太老了,需要更新为openssl1.0.2或者libressl2.64(不含)以后的版本,从泰山鲁的资源里下载下libressl,需要1个积分,如果没有积分可以也可以从官方下虽然慢点。
https://download.csdn.net/download/luzubodfgs/12065887
下载完毕后进行解压,进入解压后的目录libressl
运行: ./config –prefix=/usr/local/ssl
make
make intall
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
cd /etc/ld.so.conf.d
新建文件
vim libressl-2.8.0.conf
#将以下行加入文件,并保存
/usr/local/ssl/lib
ldconfig -v #重新加载库文件
验证是否安装完成
[root@testmachine hadoop_software]# openssl version
LibreSSL 2.8.0
3) 安装python3.7
从官网下载python3.7的源码
官方python地址:https://www.python.org/downloads/release/python-370/ 在下面的下载列表中选择下载“XZ compressed source tarball” 这个就行
解压后进入Python-3.7.0
1. 重要的事情说三遍!!!安装python3之前要把配置文件中把Setup.dist 文件中的ssl安装相关的注释给打开了, Setup.dist 的 位置再python安装源码中,例如我的在 ./usr/local/python3.7/Modules/Setup.dist ssl配置的地方在大概 第 211-214行(不同版本地方可能略微不一样),把注释都放开,原来是#号注释的,放开后如下图。
2. 编译前需要设置环境变量(重要 ,原文的这个地方写错了,让泰山鲁和同事折腾了好久)
export LDFLAGS="-L/usr/local/ssl/lib"
export CPPFLAGS="-I/usr/local/ssl/include"
export PKG_CONFIG_PATH="/usr/local/ssl/lib/pkgconfig"
./configure --prefix=/usr/python --enable-shared CFLAGS=-fPIC
3.编译 cd ../python3
make&&make install
4)验证python 安装正确
import ssl没有报错,没有错误,则
致此 python3安装ssl成功
5) 安装需要的pymysql 只需要简单的一个命令即可
pip3 install pymysql
在我调试python3安装ssl的过程中,同事wincap多次协助帮助找相关资料,安装和编译,再次表示感谢。