一、检查Python版本
# 当前默认的版本
python -v
# 列出所有的python的版本
ll /usr/bin/python*
二、升级penssl - 解决安装python3之后SSL不可用问题
python3安装在centos会存在如下问题:
问题描述
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
警告:pip配置了需要TLS/SSL的位置,但是Python中的SSL模块不可用。
解决办法:
升级升级penssl
安装过程
- 查看版本
openssl version
-
笔者的liunx服务器自带的openssl版本为1.1.1a ,然而对于小编来说,要安装python3.10的版本来说,openssl的版本太低了,因此需要更新openssl的版本才能满足要求;
- 安装依赖
yum install gcc libffi-devel zlib* openssl-devel -y
- 解决openssl编译错误 Can‘t locate IPC/Cmd.pm in @INC
yum install -y perl-CPAN
perl -MCPAN -e shell #进入CPAN的shell模式,首次进入需要配置shell,按照提示操作即可(都选默认)
> cpan[1]> install IPC/Cmd.pm #进入CPAN的shell模式 .../usr/bin/make install -- OK
(退出)
- 官网下载openssl版本
wget https://www.openssl.org/source/openssl-3.1.3.tar.gz
tar zxvf openssl-3.1.3.tar.gz
cd openssl-3.1.3
./config --prefix=/usr/local/openssl
make && make install
- 配置让openssl生效
#备份原配置
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl/ /usr/include/openssl.bak
# 新版配置
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
#修改系统配置,写入openssl库文件的搜索路径
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
#使修改后的/etc/ld.so.conf生效
ldconfig -v
# 测试
openssl version
# 如出现如 loading shared libraries: libssl.so.1.1: cannot open shared object
# 添加如下软链, 重新ldconfig -v 让配置生效
ln -sf /usr/local/openssl/lib64/libssl.so.3 /usr/lib/libssl.so.3
ln -sf /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libssl.so.3
三、安装python
- 下载
- 更新支持包
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel gcc wget
下载python3
wget https://registry.npmmirror.com/-/binary/python/3.11.5/Python-3.11.5.tgz
tar -zxvf Python-3.11.5.tgz
cd Python-3.11.5
mkdir /usr/local/Python3
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl
#编译安装
make && make install
检查安装是否成功
python3 -V
pip3 -V
升级pip
pip install --upgrade pip3
添加软链接
sudo ln -s /usr/local/python3/bin/python3.11 /usr/bin/python3
sudo ln -s /usr/local/python3/bin/pip3.11 /usr/bin/pip3
四、用python3 代替python2
- 添加软链
sudo ln -s /usr/local/python3/bin/python3.11 /usr/bin/python
sudo ln -s /usr/local/python3/bin/pip3.11 /usr/bin/pip
- 修改yum的问题
vim /usr/bin/yum
vim /usr/libexec/urlgrabber-ext-down
# 分别将上述两文件第一行对应的
#!/usr/bin/env/python 改为 #!/usr/bin/env/python2
- 查看版本
python -v