1、下载安装包

(2)点击第一个链接(最新版安装包)

点击后打开新页面

(3)点击第一项,下载gzip压缩的源码包

2、安装必要模块

python安装之前需要一些必要的模块,如openssl,readline等。

如果没有这些模块后来使用会出现一些问题,比如没有openssl则不支持ssl相关的功能,并且pip3在安装模块的时候会直接报错;没有readline则python交互式界面删除键和方向键都无法正常使用,至于需要什么模块在make完之后python会给出提示,通过提示进行安装即可装全,下面是需要提前预装的依赖:

yum -y install zlib zlib-devel
yum -y install bzip2 bzip2-devel
yum -y install ncurses ncurses-devel
yum -y install readline readline-devel
yum -y install openssl openssl-devel
yum -y install openssl-static
yum -y install xz lzma xz-devel
yum -y install sqlite sqlite-devel
yum -y install gdbm gdbm-devel
yum -y install tk tk-devel
yum -y install libffi libffi-devel

3、python安装

(1)上传python安装包

rz命令将上面下载的python源码包上传到某个目录。

(2)安装

#解压安装包
tar -xvzf Python-3.7.2.tgz
#进入安装包目录
cd Python-3.7.2

#配置编译,将安装目录设置为/usr/python

#加上--enable-shared和-fPIC,可以将python3的动态链接库编译出来,默认情况编译完lib下面只有python3.xm.a这样的文件,

python本身可以正常使用,但是如果编译第三方库需要python接口的比如caffe等,则会报错;所以这里建议按照以下方式配置,另外如果openssl不使用系统yum安装的,而是使用自己编译的比较新的版本可以使用--with-openssl=/usr/local/openssl这种方式指定,后面目录为openssl实际安装的目录,另外编译完还要将openssl的lib目录加入ld运行时目录中即可。

./configure --prefix=/usr/python --enable-shared CFLAGS=-fPIC
#编译源码
make
#执行安装
make install

4、配置

(1)添加动态链接库路径

如果不进行这步操作,会出现以下问题: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 #添加/usr/python/lib到文件中
ldconfig #执行ldconfig命令,使修改生效

(2)设置软连接

ln -s /usr/python/bin/python3.7 /usr/bin/python3
ln -s /usr/python/bin/pip3.7 /usr/bin/pip3

(3)直接将python路径加入环境变量

可以不用设置软连接,直接将python路径加入环境变量

cd /etc/profile.d
vi python3.sh

在python3.sh增加以下两行代码

export PYTHON_HOME=/usr/local/python3
export PATH=$PYTHON_HOME/bin:$PATH

(4)测试是否设置成功

任意地方命令行输入:

python3.7 -V
pip3.7 -V