Python3中安装后SSL问题及解决
作者:lucky_白杨 时间:2022-07-04 14:41:16
Python3安装后SSL问题
问题
编译安装时已经指定了–with-openssl的参数并且指向了你的openssl的源码包地址,但是编译安装之后ssl还是没有办法用。
解决
根据网上的文章介绍,要进入到python源码包解压后的那个目录下的Modules/Setup,注意Setup这个文件,只有在python完成安装后才会生成这个文件。
并且按照如下图去除注释:
可以看到SSL的路径为/usr/local/ssl,所以如果你看到自己的服务器上面没有这个路径,那么你就没有安装ssl相关的东西,或者说你的ssl相关的目录名不叫ssl。
那么你更改ssl的路径为你的ssl安装目录也可以,或者说你安装ssl的时候使用这个目录名为安装目录。
还有,可以使用libressl来代替openssl,我这次问题就是安装的libressl来解决的问题,我将libresll安装到了/usr/local/ssl这里,并且将上面的注释去除,然后重新make install,问题就解决啦!
注意python3在编译安装的时候提示了,ssl需要用openssl1.0.2或者libressl2.64(不含)以后的版本!反正用最新的就好啦!
Python3安装过程出现的ssl问题
No module named _ssl或者renaming “_ssl“ since importing it failed
如果安装Python或者运行Python的时候报了上面的错误,那么首先你需要确定自己是否安装了openssl,若安装了openssl,请确定openssl的安装位置及lib和include被安装在哪里,另外在/usr/lib64中是否有libssl.so.1.1和libcrypto.so.1.1等文件,一般而言openssl的lib及include位置为/usr/local/lib64/ 或 /usr/local/lib/ 或 /usr/local/openssl/lib/ 及 /usr/local/include 或 /usr/local/openssl/include
若没有安装,请在https://www.openssl.org/source/下载最新版,如下所示
wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz
tar -zxvf openssl-1.1.1d.tar.gz
cd openssl-1.1.1d
./config --prefix=/usr/local --openssldir=/usr/local/openssl
make && make install
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
openssl环境安装好后,就下载目标版本的Python安装包并解压了
wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tgz
tar -zxvf Python-3.7.6.tgz
cd Python-3.7.6
进入目录后很多相关的教程都会说要你改下面的文件,但是!!不会和你说为什么改,只关顾着说取消注释就完事了。
vim Modules/Setup.dist
找到SSL相关配置
#SSL=/usr/local/ssl
#_ssl _ssl.c
# -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl
# -L$(SSL)/lib -lssl -lcrypto
我们先把这几段取消注释,然后看红色部分字段,这个字段即openssl的lib及include所在的目录,假设include目录在/usr/local/下,且路径/usr/local/include/openssl存在,那么红色部分字段改为/usr/local(请根据实情)
紫色部分字段,即openssl的lib所在的路径,请确认一下该路径下是否有libssl.so.1.1之类的,没有说明找错了。请把紫色部分字段改为lib64(请根据实情)
改完后保存wq
例子
SSL=/usr/local
_ssl_ssl.c
-DUSE_SSL -l$(SSL)/include -l$(SSL)/include/openssl
-L$(SSL)/lib64 -lssl -lcrypto
最后编译看看是不是好了?
./configure --prefix=/usr/local/python3 --enable-shared CFLAGS=-fPIC && make && make install
来源:https://baiyang.blog.csdn.net/article/details/85848571
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python使用内置json模块解析json格式数据的方法
![](https://img.aspxhome.com/file/2023/6/61226_0s.png)
Django中的CACHE_BACKEND参数和站点级Cache设置
Python还能这么玩之用Python做个小游戏的外挂
![](https://img.aspxhome.com/file/2023/9/72129_0s.png)
pandas学习之df.set_index的具体使用
python切换hosts文件代码示例
PS笔刷,样式,形状、渐变、滤镜载入方式及使用
![](https://img.aspxhome.com/file/UploadPic/200710/17/2007101711564849s.gif)
pytorch制作自己的LMDB数据操作示例
关于Python中的闭包详解
详解python 条件语句和while循环的实例代码
Python手动实现Hough圆变换的示例代码
![](https://img.aspxhome.com/file/2023/1/101291_0s.png)
浅谈Python中的全局锁(GIL)问题
用一个例子来认识innerText,innerHTML
Python 调用API发送邮件
![](https://img.aspxhome.com/file/2023/7/107017_0s.png)
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
Jsp+Servlet实现简单登录注册查询
![](https://img.aspxhome.com/file/2023/4/97884_0s.png)
深入浅出SQL之左连接、右连接和全连接
Python语法分析之字符串格式化
Python动态配置管理Dynaconf的实现示例详解
使用SQL语句 INNER JOIN 联接表
![](https://img.aspxhome.com/file/UploadPic/20084/27/sql_15s.gif)