Linux (centos) 安装Python3.9(保姆级别)

在这里插入图片描述

部署指南

项目运行需要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

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安装路径配置到编译参数中
# 如果出现Could not import runpy module的报错,那么说明gcc版本太低,不支持--enable-optimizations参数,把它去掉就好
# 编译并安装Python
make
make altinstall
# 此时python安装完毕,但是由于附带了2.7.5版本的Python,所以此时查看Python的版本仍是2.7.5
# 查看python3的版本
python3 --version

至此python3安装完毕
我们可以通过设置软连接来指定python和pip命令的路径使其使用的是python3和pip3,但考虑到其他影响,这两个命令还是不要随意更换为好

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

猜你喜欢

转载自blog.csdn.net/rock1112uhhgg/article/details/131938042