1、注意安装编译 Python 所必要的软件包,不然容易出问题
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
2、下载软件
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
#解压
tar -xf Python-3.8.0.tgz
3、cd到目录configure
cd Python-3.8.0
./configure --enable-optimizations
4、make
make -j 4
修改-j来适配处理器数量,输入nproc来找到处理器的数量。
5、安装
sudo make altinstall
不要使用标准的make install因为它会覆盖默认的系统 python 3 二进制包。
6、查看版本
python3.8 --version
注意:编译包安装位置不放在共享文件内,容易出错
pip问题
升级pip3之后,使用pip3出现ImportError: cannot import name 'main'的错误。
修正的方法是修改/usr/bin/pip3这个文件。
sudo gedit pip3
如下是这个文件原来的内容:
from pip import main
if __name__ == '__main__':
sys.exit(main())
显然,导致错误的原因,就是pip3升级后,main函数被修改了。
现在修改这个文件,如下是修改后的内容:
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
保存后,再使用pip3,就一切正常了。
将“python”指向“python3”
echo alias python=python3 >> ~/.bashrc
source ~/.bashrc
将“pip”指向“pip3”:
echo alias pip=pip3 >> ~/.bashrc
source ~/.bashrc
pip路径问题
python路径下缺少 'lsb_release.py' 模块
1、查找到lsb_release模块所在的目录
sudo find / -name 'lsb_release.py'
2、将其复制到设置python3.8的系统模块加载位置,也就是报错处subprocess.py所在的目录
sudo cp /usr/lib/python3/dist-packages/lsb_release.py /usr/local/python/lib/python3.8/