1、配置依赖环境,如果不进行这步可能会出现一些问题
sudo apt update
sudo apt install libffi-dev libssl-dev libreadline-dev -y
2、直接去官网下载你想的版本
3、解压下载的包,在这之前你可以先mv你的包到指定位置解压
tar zxvf Python-3.7.2.tgz
4、进入解压目录,建立安装的目录
cd Python-3.7.2/
sudo mkdir -p /usr/local/python3
5、编译安装
执行这步是后面最好加上 --enable-optimizations --with-ssl会自动安装pip3及优化配置
sudo ./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl
sudo make
sudo make install
6、删除软链接并建立新的指向python3.7的软链接
#删除软链接
sudo rm -rf /usr/bin/python3
sudo rm -rf /usr/bin/pip3
#建立新的指向python3.7软链接
sudo ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
sudo ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3
7、检测版本
l@923:~$ python3 -V
Python 3.7.2
l@923:~$ pip3 -V
pip 19.0.3 from /usr/local/python3/lib/python3.7/site-packages/pip (python 3.7)
#原系统自带版本不变
l@923:~$ python -V
Python 2.7.12
l@923:~$ pip -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
8、可能会出现的问题
问题一:
在Ubuntu中,升级了pip,再次使用pip 安装相关的python包的时候就出现以下错误
ImportError: cannot import name main
解决:pip文件在usr/bin目录下,cd进去,进行以下修改
把下面的三行
from pip import main
if __name__ == '__main__':
sys.exit(main())
换成下面的三行
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
问题二:
使用pip3安装任何模块时的类似报错:
subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.
解决办法:
sudo vim /usr/bin/lsb_release
修改第一行,指明python的版本号,若安装的是python3.7则修改:
#!/usr/bin/python3
为:
#!/usr/bin/python3.7