一、下载python源码
官网:https://www.python.org/downloads/
本次下载版本python3.7.2,https://www.python.org/downloads/release/python-372/
也可以直接使用命令下载,但是速度会比较慢(我当时是很慢很慢……)
wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
二、解压、配置
下载完成后解压,然后添加配置。在configure的选项中,--prefix定义了安装位置,便于以后更新或删除python;--enable-shared指定安装共享库,共享库在使用其他需调用python的软件时会用到,比如使用mod_wgsi连接Apache与python时需要,最好填上。
$ tar -xzvf Python-3.7.2.tgz
$ cd Python-3.7.2
$ ./configure --prefix=/usr/local/python3 --enable-shared
$ sudo mkdir /usr/local/python3
注:如果./configure 后显示
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure.sh:error:no acceptable C compiler found in $PATH
See 'config.log' for more details.
解决办法:yum -y install gcc
三、编译、安装
$ make
$ sudo make install
四、创建软链接
然后建立python3和pip3的软链。
$ ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
$ ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
建立软链后输入python3即可进入python3解释器,同时你还可以输入python或python2进入python2解释器,二者可以共存。
五、常见bug
1.输入python3后显示
python3: error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory
出现该问题是由于在centos下安装python3并没有将编译后python/lib下文件放入默认库/usr/lib或/lib中,导致初始化时没有加载库文件。
解决方案:将lib添加至库配置信息中
#cd /etc/ld.so.conf.d
#vim python3.conf
将编译后的python/lib地址加入conf文件,按照教程的话应该地址是:/usr/local/python3/lib
#ldconfig
再次查看输入python3,即可看到正确显示信息
2.没有pip
如果安装完后发现pip不能用,很可能是没有安装相应的依赖,碰到这个问题可以参考这篇回答——centos在python3环境下安装PIP的问题?。
3.无法导入ssl模块、Python Shell 中敲击方向键显示、无法导入sqlite3模块、Python 编译后提示依赖不全
解决方法见参考文章【1】
参考文章:【1】Linux下源码编译安装Python3
【2】https://blog.csdn.net/tonyrain123/article/details/81045797