Ubuntu18.04升级-python3.10

Python3.10安装


相关链接:

Python Source Releases

Python 3.10.15.tar.xz


content


一、更新

因为ubuntu 18.04的原生自带的python 是3.6,实际项目时要求版本需要更高,这就必须的得升级

sudo apt-get update
sudo apt-get upgrade

二、安装

1. 从源码安装

一般来说选择稍微稳定一点的版本,可以查看对应的支持列表:

官网下载源码包(寻找你需要的版本): Python Source Releases

或者直接命令行下载源码包:

wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz
tar -zvxf Python-3.10.0.tgz 
cd Python-3.10.0/
./configure --enable-optimizations

make -j 6
sudo make install

安装完成后,输入python3.10,查看是否安装成功

python3.10 -V

如果安装成功,会显示python3.10的版本信息

2. 使用apt安装

这个就比较简单了,直接使用apt安装即可,但是很可能没反应,因为ubuntu 18.04的源里面没有python3.10的版本,所以建议从源码安装

sudo apt-get install python3.10

3. 卸载python3.10

卸载python3.10

sudo apt-get remove python3.10

卸载python3.10的依赖包

sudo apt-get autoremove

卸载python3.10的配置文件

sudo rm -rf /usr/local/lib/python3.10
sudo rm -rf /usr/local/bin/python3.10

而后,需要修改python3的命令,跟pip3 的命令,还有就是apt install安装的跟 解压包安装的python路径不一样, apt 是在 /usr/bin/python 而安装包是在 /usr/local/bin/python

查看本地的python

ls /usr/bin/python*

修改 usr/bin/python3

当然以防万一建议先去到对应的目录下查看一下

sudo rm /usr/bin/python3
sudo ln -s /usr/local/bin/python3 /usr/bin/python3

修改 usr/bin/pip3

sudo rm /usr/bin/pip3
sudo ln -s /usr/local/bin/pip3 /usr/bin/pip3

如果你还要改python权重,就使用下面的命令

注意:***update-alternatives: –install 需要 <链接> <名称> <路径> <优先级>*** 数字代表了优先级,数字越大优先级越高

这里只是给出方法,不建议使用,因为这样会导致系统默认的python3.6被覆盖掉,导致系统命令无法使用python3.6

sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.10 2
sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.10 1

三、一些特殊情况

安装更新后使用过程中大概率会出现各种系统包无法导入的情况

这里给出一些常见的解决办法,当然方法是通用的不局限于 ufw 的问题,像 lsb_release.py 找不到的问题也可以使用类似的方法

~# ufw --help
Traceback (most recent call last):
  File "/usr/sbin/ufw", line 26, in <module>
    import ufw.frontend
ModuleNotFoundError: No module named 'ufw'

大概率系统中是有ufw的,确认一下,但是是python3.6的,所以需要确认一下

sudo apt-get install ufw

找一下ufw的路径

sudo find /usr/lib/ -name "ufw"

可能的输出如下:

/usr/lib/python3.6/site-packages/ufw
or
/usr/lib/python3/dist-packages/ufw

有了路径后,我们就可以把ufw添加到python3.10的路径下

#参数 -r 表示递归复制,这里ufw是个目录,所以需要加上-r
sudo cp -r /usr/lib/python3/dist-packages/ufw /usr/local/lib/python3.10/

到此就可以正常使用了

四、REFERENCES