Ubuntu16.04 LTS自带的Python3.5升级到Python3.7详细记录

起因:
有些第三方库运行只支持Python3.5以上,以及需要使用pip3安装,因此不得不升级Python版本。主要步骤为python官方源码安装,然后修改Python3和pip3的软连接即可。
具体升级步骤:
①安装依赖:

sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev 
sudo apt-get install liblzma-dev libffi-dev libc6-dev

②从python官网下载
https://www.python.org/downloads/release/python-373/最新的为3.9版本。

wget 'https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz'

Ubuntu16.04 LTS自带的Python3.5升级到Python3.7详细记录_第1张图片

③解压,源码安装

tar zxvf Python-3.7.3.tgz                                  #解压源码
cd Python-3.7.3                                               #进入到解压文件
sudo mkdir -p /usr/local/python3                     #新建Python3.7的工作目录
./configure --prefix=/usr/local/python3  --enable-optimizations          #配置
make                                                                       #编译
sudo make install                                                     #安装

④ 修改Python3和pip3的软连接指向python3.7和pip3.7

1)先进入可执行文件的目录,执行查看版本

cd /usr/bin          #进到python可执行目录
ll -a|grep python3    #查看python3的版本
ll -a|grep pip3    #查看pip3的版本

这里我已经将Python3和pip3的软连接修改为新版本的。
Ubuntu16.04 LTS自带的Python3.5升级到Python3.7详细记录_第2张图片
在这里插入图片描述

2)如果有则证明软链接已存在,需要先删去以前的再重新建立


sudo rm -rf /usr/bin/python3
sudo rm -rf /usr/bin/pip3

3)建立新的软连接
#添加python3的软链接

sudo ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3

#添加 pip3 的软链接

sudo ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3

4)检测版本,可以看到指向新的版本

python3 -V
pip3 -V

Tips:
1.使用pip3和国内源安装Python第三方库

sudo pip3 install xxx -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com     豆瓣源
sudo pip3 install xxx -i  -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip                       清华源

2.linux系统下的查找命令which,whereis,locate,find的区别。
which:只能查可执行文件的位置 ,在PATH变量里面寻找。which 查找的可执行文件,必须是要在 PATH 下的可执行文件,而不能是没有加入 PATH 的可执行文件,即使他就是可执行文件,但是没有加入到系统搜索路径,他仍然无法被 which 发现

whereis: 只能查二进制文件(含可执行文件)、说明文档,源文件或目录名称等,从linux文件数据库(/var/lib/slocate/slocate.db 或 /var/lib/mlocate/mlocate.db)寻找,所以有可能找到刚刚删除,或者没有发现新建的文件。whereis不仅找到了可执行文件的位置,还找到了其 man 帮助文件,可见其搜索范围比较广,不局限于PATH。

locate: 配合数据库查看文件或者目录位置,数据库大至每天更新一次,文件名是部分匹配。

find: 实际搜寻硬盘查询文件名称。 (find )
语法: find 路径 参数
参数说明:
时间查找参数:
-atime n :将n24小时内存取过的的文件列出来
-ctime n :将n
24小时内改变、新增的文件或者目录列出来
-mtime n :将n*24小时内修改过的文件或者目录列出来
-newer file :把比file还要新的文件列出来
名称查找参数:
-gid n :寻找群组ID为n的文件
-group name :寻找群组名称为name的文件
-uid n :寻找拥有者ID为n的文件
-user name :寻找用户者名称为name的文件
-name file :寻找文件名为file的文件(可以使用通配符)

最后欢迎大家批评指正!

参考博客:
https://blog.csdn.net/tao_627/article/details/90901830
https://blog.csdn.net/qq_33826564/article/details/82906115
https://blog.csdn.net/zhailihua/article/details/78329123

你可能感兴趣的:(linux,python,python)