centos安装python3_Ubuntu安装Python3

CentOS 安装 Python3 没什么坑,按照步骤一步步来就可以了。

但 Ubuntu 安装 Python3 的坑却不少,这里总结一下,避免以后继续踩坑。

我用的是 ubuntu16.04,安装最新版本的 Python3.8.3

第1步:安装编译环境

安装之前,先更新一下源的软件列表。

apt-get update
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 liblzma-dev libffi-dev libc6-dev

第2步:下载 Python 源码

去官方网站下载:

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

官网的下载速度实在感人,换成阿里的镜像:

wget https://cdn.npm.taobao.org/dist/python/3.8.3/Python-3.8.3.tgz

第3步:解压

tar -xzf Python-3.8.3.tgz

第4步:配置安装选项

先进入上一步解压出来的 Python 源码文件夹:

cd Python-3.8.3

如果想快速安装,只配置安装位置即可。

例如,我要把 Python3.8.3 安装在这个目录下:/usr/local/python3.8

./configure --prefix=/usr/local/python3.8

如果不在意安装耗时,可以设置优化选项--enable-optimizations

 ./configure --prefix=/usr/local/python3.8 --enable-optimizations

注意:这里有第1个坑

安装选项 --enable-shared 不要设置。
原因分析请看这里:史提芬先森:聊一聊 Python 安装中的 --enable-shared

网上说不设置有坑,但我没有遇到过。遇到过的可以留言分享一下。

第5步:编译、安装

make && make install

第6步:设置 Python3.8.3 为系统默认的 Python3

这一步要在/usr/bin目录下设置两个软链接文件:

  • /usr/bin/python3
  • /usr/bin/python3-config

这里要强调一下:

系统自带的 Python2 和 Python3 不要删除!
系统自带的 Python2 和 Python3 不要删除!
系统自带的 Python2 和 Python3 不要删除!

先说一下系统自带的 python3 到底放在哪里。

执行命令whereis python3,可以找到 python3 的位置:/usr/bin/python3

进入目录/usr/bin/ ,可以找到这几个文件:

  • /usr/bin/python3.5
  • /usr/bin/python3.5m
  • /usr/bin/python3 -> python3.5
  • /usr/bin/python3m -> python3.5m
  • python3.5-config -> x86_64-linux-gnu-python3.5-config
  • python3.5m-config -> x86_64-linux-gnu-python3.5m-config
  • python3-config -> python3.5-config
  • python3m-config -> python3.5m-config

/usr/bin/python3.5/usr/bin/python3.5m其实是同一个文件,它们的md5完全一样,python3.5-config同理。

ba8de19d018cfeae1e1813a42280ae72.png

我们要做的就是把下列两个软链接指到我们刚安装的 Python3.8.3

  • /usr/bin/python3
  • /usr/bin/python3-config
# 先删除这2个软链接
rm /usr/bin/python3 /usr/bin/python3-config
# 创建新的软链接
ln -s /usr/local/python3.8/bin/python3.8 /usr/bin/python3
ln -s /usr/local/python3.8/bin/python3.8-config /usr/bin/python3-config

这是偷懒的方法。

建议按照 Ubuntu 的方式来:

ln -s /usr/local/python3.8/bin/python3.8 /usr/bin/python3.8
ln -s /usr/local/python3.8/bin/python3.8-config /usr/bin/python3.8-config
ln -s /usr/bin/python3.8 /usr/bin/python3
ln -s /usr/bin/python3.8-config /usr/bin/python3-config

第7步:设置系统默认的 pip3

先看一下我们安装的 Python3.8.3 中,pip 的位置:

18d30beb608b05199338e3bb8f355fb2.png

然后我们找一下系统自带的 Python2 的 pip 的位置,不过 Python2 居然没有安装 pip 模块:

d943644ea693c75383e14a1469e207b4.png

再看下系统自带的 Python3 的 pip 的位置:

dae2b63c00c827e50e6cecaca9bffe2e.png

系统自带的 Python3 的 pip 文件是:/usr/bin/pip3
截图中我已经把它重命名为 pip3.5 了,并且把 pip3 链接到了 Python3.8 的 pip。

mv /usr/bin/pip3 /usr/bin/pip3.5
ln -s /usr/local/python3.8/bin/pip3 /usr/bin/pip3
CentOS 第6步和第7步与 Ubuntu 类似。

第8步:pip3 安装模块提示错误

CentOS 到第7步就结束了,但 Ubuntu 还有个坑,那就是用 pip3 安装模块时,会提示错误:

ad82e3b699793d16b454ac87fb8c7f41.png

看错误信息,应该与文件/usr/bin/lsb_release有关。

我们看下这个文件的内容(看第一行就可以了):

21b753fe960d4e964400dd98d702cdfe.png

这就是一个Python脚本文件,难道是因为我们把 python3 链接到 python3.8.3,所以会出现这个错误?把第一行改为系统自带的 Python3 是不是就可以解决?

我把 #!/usr/bin/python3 -Es改为#!/usr/bin/python3.5 -Es ,再次用 pip3 安装模块,这个错误就没有了。

这个问题有几个解决办法,总结一下:

方法一:

删除或者重命名文件:/usr/bin/lsb_release

方法二:

用文本编辑器打开文件 /usr/bin/lsb_release
第一行是:#!/usr/bin/python3 -Es
把它改为:#!/usr/bin/python3.5 -Es

还记得之前说过系统自带的python3不要删除吗?这里就用上了。

方法三:

打开文件/usr/local/python3.8/lib/python3.8/site-packages/pip/_vendor/distro.py,大概在575行,把 True 改为 False。

19aa2a0dbafbca803d198ca445a953b1.png

第9步:PyPI源改为国内的镜像

第8步实际上已经完成 Python 的安装了,只不过国内 pip 下载的网速实在是太慢了,一般都建议改为国内的镜像。

国内的 PyPI 镜像:

豆瓣 https://pypi.doubanio.com/simple/ 
网易 https://mirrors.163.com/pypi/simple/ 
阿里云 https://mirrors.aliyun.com/pypi/simple/ 
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/

修改方法:

新建文件$HOME/.config/pip/pip.conf ,如果目录不存在,自己创建,文件内容如下:

[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = mirrors.aliyun.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值