【Linux】Linux服务器解决python3.7与openssl的低版本不兼容的问题

5 篇文章 0 订阅
5 篇文章 0 订阅

安装了Python3.7之后,遇到的一个很麻烦的坑就是与系统自带的ssl版本不兼容, Python3.7需要的openssl的版本为1.0.2或者1.1.x,这个requirements在config Python3.7的时候使用“--with-ssl”选项会报出。

Could not build the ssl module!
Python requires an OpenSSL 1.0.2 or 1.1 compatible libssl with X509_VERIFY_PARAM_set1_host().

Linux系统默认的openssl版本通常是:OpenSSL 1.0.1,可以使用命令查询系统的openssl版本:

openssl version

当前版本低于Python3.7的需求,会导致一些运行错误,比如pip3 install命令的失败,故需要进行openssl版本升级。

 (1)下载较高版本的openssl

https://www.openssl.org/source/openssl-1.1.1-pre8.tar.gz

(2)解压安装包

tar -xvzf openssl-1.1.1-pre8.tar.gz

(3)编译安装

cd openssl-1.1.1-pre8
./config --prefix=/usr/local/openssl no-zlib  # 新版openssl将安装在/usr/local/openssl目录下
make
make install

这样的话,新版本的openssl已经安装完毕,但是需要进行一些环境配置才能够继续使用。

来到/usr/bin目录下,可以发现已经有一个openssl可执行文件,这个就是系统自带的低版本,这里我们对它进行一个备份。

(4)备份原openssl配置

备份是个好的习惯,至少在安装新版本出错的时候可以回滚旧版本继续使用。

mv /usr/bin/openssl /usr/bin/openssl_bak  # backup
mv /usr/include/openssl/ /usr/include/openssl_bak

(5)备份好之后就可以为新版openssl配置软连接了

# 将安装好的openssl的openssl命令软连到/usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl

# 软链到升级后的libssl.so
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so

# 将安装好的openssl命令软连到/usr/bin/openssl
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

(6)最后再修改下系统配置即可

# 写入openssl库文件的搜索路径
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf  # 需要root权限

# 使修改后的/etc/ld.so.conf生效 
ldconfig -v

(7)验证安装结果

Done.


==还是不能work==继续解决。。。

升级完新版本的openssl之后,需要对Pyhton3.7进行重新编译并更新软连接才能继续使用Python3.7。


参考博客

1、python3.7安装后ssl问题

2、Linux服务器安装python3.7

3、How to Compile and Install Python with OpenSSL Support?

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 你可以通过命令行安装 Python 3.7: ``` sudo apt-get update sudo apt-get install python3.7 ``` 或者从 Python 官网下载源代码包自行编译安装。 ### 回答2: 要在Linux系统中下载和安装Python 3.7,可以按照以下步骤进行操作: 1. 打开终端,以root用户身份运行以下命令更新软件包列表: ``` sudo apt update ``` 2. 安装必要的依赖包以支持Python编译和安装: ``` sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget ``` 3. 在Python官方网站上下载Python 3.7的源代码包。在终端中使用`wget`命令来下载: ``` wget https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz ``` 4. 解压下载的源代码包: ``` tar -xf Python-3.7.12.tgz ``` 5. 进入解压后的目录: ``` cd Python-3.7.12 ``` 6. 配置并构建Python源代码: ``` ./configure --enable-optimizations make ``` 7. 安装Python到系统: ``` sudo make altinstall ``` 注意:使用`make altinstall`而不是`make install`命令是为了避免覆盖系统默认的Python版本。 8. 安装完成后,可以通过以下命令来验证Python版本: ``` python3.7 --version ``` 如果成功安装,将会显示Python 3.7的版本信息。 现在你已经成功在Linux系统上下载和安装了Python 3.7。 ### 回答3: 要在Linux上下载并安装Python 3.7,可以按照以下步骤进行操作: 1. 打开终端。 2. 首先,需要确保系统已经安装了适当的软件包管理工具,如apt(Ubuntu),yum(Fedora)或者dnf(CentOS)等。这些工具将帮助我们下载并安装Python。 3. 在终端中,输入以下命令以更新已安装的软件包及其版本信息: ``` sudo apt update 或者 sudo yum update 或者 sudo dnf update ``` 4. 接下来,输入以下命令来安装Python 3.7的开发包和编译工具: ``` sudo apt install build-essential libssl-dev zlib1g-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev libgdbm-dev libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev tk-dev libffi-dev 或者 sudo yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel 或者 sudo dnf install gcc openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel ``` 5. 下一步,我们将从官方Python网站下载Python 3.7的源代码。在终端中,输入以下命令: ``` wget https://www.python.org/ftp/python/3.7.10/Python-3.7.10.tgz ``` 6. 下载完成后,解压缩文件。在终端中,输入以下命令: ``` tar -xzvf Python-3.7.10.tgz ``` 7. 进入解压缩后的文件夹。在终端中,输入以下命令: ``` cd Python-3.7.10 ``` 8. 接下来,使用以下命令配置编译选项: ``` ./configure --prefix=/usr/local/opt/python-3.7.10 ``` 9. 配置完成后,使用以下命令进行编译和安装: ``` make sudo make install ``` 10. 最后,通过以下命令验证Python 3.7已成功安装并可用: ``` python3.7 --version ``` 这样,您就成功在Linux上下载和安装了Python 3.7。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值