oracle的VPS上我一直安装的是CentOS,最近要要能够到oci,提示Python2.7即将不能支持。看了下系统刚好是2.7.5,所以有必要升级python一下。
1、准备工作
CentOS
yum update
yum upgrade
Ubuntu
apt update
apt upgrade
2、下载新版本python,可以提前去官网查看想要安装的版本对应的路径
wget https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz
3、解压,并进入目录
tar -xf Python-3.9.7.tgz
cd Python-3.9.7/
4、安装
为了避免sqlite3报错,建议提前先执行一次下面的命令
yum -y install sqlite-devel
执行编译,注意一定要带--with-ssl,不然会提示pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
错误
./configure --with-ssl
make & make install
5、如果编译时出现以下错误,请安装gcc后再次编译
configure: error: in `/root/Python-3.9.7':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
安装gcc
yum -y install gcc
如果在make & make install
报错can't decompress data; zlib not available
,请执行一下命令后,再次编译安装
yum -y install zlib*
安装过程中有可能停住,多执行几次make & make install
6、到现在python3已经安装好了,可以用python3来看看时候有交互界面,但是python默认指向的还是python2,所以要修改软连接
mv /usr/bin/python /usr/bin/python2.7.5
ln -s /usr/local/bin/python3.9 /usr/bin/python
7、解决yum报错
执行yum命令的时候,会出现下面的错误
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
修改yum命令中的python指向
vi /usr/bin/yum
将第一行的#!/usr/bin/python
修改为#!/usr/bin/python2
如果继续报错
File "/usr/libexec/urlgrabber-ext-down", line 28
except OSError, e:
需要进一步修改/usr/libexec/urlgrabber-ext-down
文件头,和上面相同,yum即刻恢复正常
8、firewall报错
vi /usr/bin/firewall-cmd
vi /usr/sbin/firewalld
将第一行中的#!/usr/bin/python -Es
修改为#!/usr/bin/python2 -Es
9、有时候可能出现pip3:命令未找到,但已安装python3-pip
locate pip3
它会给你一个列表,其中会有以下字段,如果centos7没有安装locate需要先安卓locate
yum -y install mlocate
初始化,然后就可以用查找命令了
updatedb
/<path>/pip3
/<path>/pip3.x
然后就可以建立软连接
ln -s /<path>/pip3.x /usr/local/bin/pip3
10、有时候升级的时候,因为依赖问题,升级失败,如下:
The following packages have unmet dependencies: python3.10 : Depends:
libpython3.10-stdlib (= 3.10.5-1+focal1) but 3.10.4-1+focal1 is to be
installed python3.10-minimal : Depends: libpython3.10-minimal (=
3.10.5-1+focal1) but 3.10.4-1+focal1 is to be installed E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or
specify a solution).
这时候需要用下面的命令进行修复
sudo apt purge libpython3.10-minimal libpython3.10-stdlib libpython3.10 libpython3.10-dev python3.10 python3.10-minimal python3.10-dev python3.10-venv
sudo apt install python3.10
评论已关闭