(1)习惯更新下yum源
yum update
提示:如果网速不是很好,或者安装时间很急的情况下,那就不要更新yum源了。(超级费时间)
(2)安装python3.7所需依赖
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
(3)再执行安装一个工具,不安装会导致pip安装失败
yum install libffi-devel -y
(4)下载python
网址:https://www.python.org/ftp/python/
这上面有python的各种版本,找到对应版本,比如3.7.3,则下载命令为:
进入/root文件夹下
cd /root
(再执行命令)
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
(5)配置编译
解压:
tar -zxvf Python-3.7.3.tgz
cd Python-3.7.3
配置编译的的路径:
默认的安装目录是 /usr/local 如果你要改成其他目录可以在编译(make)前使用 configure 命令后面追加参数 “–prefix=/path” 来完成修改。
提前在 usr/local/下创建好python3.7.3文件夹,还是建议提前创好, 给上root 777权限【可能会避免很多bug】。
./configure --prefix=/usr/local/python3.7.3 --enable-shared CFLAGS=-fPIC --enable-optimizations
(6)编译和安装
make && make install
(7)添加软链接(可以直接使用python和pip命令)
添加软链或者添加到环境变量,下边是添加软连接:
ln -s /usr/local/python3.7.3/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3.7.3/bin/pip3.7 /usr/bin/pip3
注意:
/usr/local/python3.7.3/bin/python3.7 和 /usr/local/python3.7.3/bin/pip3.7 是你在/usr/local/python3.7.3/bin
这个文件夹里看到安装后是什么名称就写什么。
后面的/usr/bin/python3和pip3 是因为系统自带安装python2.7和pip,所以为了共存,不要去取代原来的,以后执行命令用
python3和pip3就行。
(8)添加动态链接库路径
这个时候直接执行命令: python3 或者 pip3
会出现错误:
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/local/python3.7.3/lib
#将这句命令添加到刚打开的编辑器中,按 i 切换输入命令模式,输入这行路径,按ESC转为保存模式,
输入 :wq 保存更改。
ldconfig #现在退出了编辑器,路径停留在ld.so.conf.d文件夹下,执行这句命令,是配置立即生效
OK,这个时候已经完美使用了。
(9)更新下pip到最新版本
后面一直会用到pip下载库,所以更新下pip有必要。
更新命令,随便在哪里执行,因为pip3已经是全局命令:
pip3 install --upgrade pip
(10)添加打包pyinstaller软链接
因为后面肯定会用到打包工具,索性把打包的软链接一起添加了。
pip3 install pyinstaller
ln -s /usr/local/python3.7.3/bin/pyinstaller /usr/bin/pyinstaller