Linux (centos) 安装Python3.9(保姆级别,解决OpenSSL版本依赖的问题)

在这里插入图片描述

部署指南

项目运行需要python环境 ,推荐python3以上,作者使用的是python3.9.7,以下是安装步骤:
特别注意,Linux通常附带大多数Python都是2.7.5版本。如果我们想使用Python3,最好安装一个新的Python3环境,但请不要尝试删除Python2,避免引起不必要的麻烦。

1. 更新系统软件包(可以使用centos7的默认yum配置):

yum update

2. 安装编译Python所需的依赖项:

yum install -y git gcc make openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel

此时注意:当python3 安装了requests,由于requests包引入了urllib3,而新版本的urllib3
需要OpenSSL 1.1.1+以上版本,否则报错。而默认的OpenSSL版本为OpenSSL 1.0.2k-fips 26 Jan 2017
而安装OpenSSL 1.1.1+以上版本需要重新编译和安装python才可以生效,所以此步骤放到这里来。

解决办法: 需要升级openssl、下载编译openssl

# 下载openssl-1.1.1t源代码包:
wget --no-check-certificate   https://www.openssl.org/source/openssl-1.1.1t.tar.gz
# 如果此命令遇到网络问题手动到官网下载也可以
# 解压
tar -zxvf openssl-1.1.1t.tar.gz
cd openssl-1.1.1t/
# 指定openssl安装的目标路径
./config --prefix=/usr/local/my_openssl
# 在CPU占用不多的情况下,可以适当使用4个线程加速编译,可以根据需要调整线程数,
make # make -j4
make install
# 回到上级目录
cd ../
# 选择是否删除解压包
rm openssl-1.1.1t.tar.gz 
# 此时我们查看openssl的版本,发现依旧是旧的版本,我们不用管他,
# 因为我们安装的openssl是给python3.9用的。

至此openssl 已经安装完成,但是我们安装的openssl目前是不可用的,因为我们没有配置他的环境,现在我们配置他的环境

# 创建软连接	
ln -s /usr/local/my_openssl/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1
ln -s /usr/local/my_openssl/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
# 更新系统的动态链接库缓存
ldconfig
# 此时查看新安装的openssl版本
/usr/local/my_openssl/bin/openssl version

结果如下,至此openssl1.1就可以使用了:
在这里插入图片描述

3. 安装python:

# 下载python3.9.7源代码包
wget https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz
# 解压源代码包
tar -xf Python-3.9.7.tgz
# 进入源代码目录
cd Python-3.9.7
# 配置编译参数
./configure --enable-optimizations --with-openssl=/usr/local/my_openssl
# 把openssl安装路径加bin目录下的openssl配置到编译参数中,
# 如果出现Could not import runpy module的报错,那么说明gcc版本太低,
# 不支持--enable-optimizations参数,把它去掉就好
# 编译并安装Python
make

如果出现Python build finished successfully!而没有其他warning,则说明没什么问题,下面有一些缺失的库,可以自行下载。
在这里插入图片描述

make altinstall
# 此时python安装完毕,但是由于附带了2.7.5版本的Python,所以此时查看Python的版本仍是2.7.5
# 考虑替换掉python或pip命令可能会导致python2无法正常使用,那就用python3和pip3代替
# 设置软连接
ln -s /usr/local/bin/python3.9 /usr/bin/python3
ln -s /usr/local/bin/pip3.9 /usr/bin/pip3
# 查看python3的版本
# 回到上级目录
cd ../
python3 --version
# 选择是否删除解压包
rm Python-3.9.7.tgz

至此python3安装完毕

4. 设置pip镜像源

# 检查当前的pip配置
pip3 config list
# 设置pip安装源:以设置清华大学镜像为例
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 验证配置是否成功:你可以再次运行以下命令来检查配置是否正确生效:
pip3 config list

5. 安装虚拟环境解析器

在python项目部署的过程中,我们需要为它配置一个解析器,我们可以用virtualenv工具来创建虚拟环境,当然也可以用其他

# 安装 virtualenv
pip3 install virtualenv
# 使用 virtualenv 创建虚拟环境
virtualenv -p python3 my-virtualenv

创建了虚拟环境后,你可以在当前目录看到新建了一个my-virtualenv目录,而这个目录就可以当做为一个解析器。因为会创建这么一个项目,所以在创建创建虚拟环境之前要确保当前没有中没有my-virtualenv这个目录

# 激活虚拟环境
source my-virtualenv/bin/activate
# 使用完虚拟环境后退出
deactivate
CentOS 系统上安装 Python 3.9,你可以按照以下步骤操作: 1. **更新包列表**: 首先确保你的系统是最新的。打开终端并运行: ``` sudo yum update -y ``` 2. **删除旧版本Python**: 如果你已经安装了其他版本Python,为了防止冲突,最好先卸载它们。但要注意,有些依赖可能只存在于默认版本3.x),所以不建议随意删除。如果确定不需要旧版本,可以用以下命令: ``` sudo yum remove python3* -y (如果存在多个版本) ``` 3. **添加 EPEL (Extra Packages for Enterprise Linux)**: CentOS 默认源可能没有 Python 3.9,我们需要从 EPEL 添加额外的软件仓库。运行以下命令来安装 epel-release 包: ``` sudo yum install epel-release -y ``` 4. **安装 Python 3.9**: 现在你可以安装 Python 3.9了。在 CentOS 8 或更高版本,你可能会找到预编译好的包。如果是 CentOS 8,使用以下命令安装: ``` sudo yum install python39 -y ``` 如果是 CentOS 7 或更低版本,可能需要手动下载源码包进行编译安装,或者查找特定的社区软件包。在这种情况下,请访问 Python 3.9 的官方下载页面(https://www.python.org/downloads/source/)下载源码,并遵循文档指导进行编译和安装。 5. **验证安装**: 安装完成后,可以通过以下命令验证 Python 3.9 是否已成功安装: ``` python3.9 --version ``` 6. **设置环境变量**: 可能需要将新安装Python 设置为默认版本,可以在 `.bashrc` 或 `.zshrc`(取决于你的 shell)文件中添加: ```bash export PATH=/usr/bin/python3.9:$PATH source ~/.bashrc 或者 source ~/.zshrc ``` 完成上述步骤后,你应该就可以开始使用 Python 3.9 了。如有必要,记得替换 `python3.9` 为实际的安装路径。如果有其他问题,可以随时提问相关的安装细节。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值