CentOS7安装Python3

in 编程 with 2 comments

环境准备

系统环境:使用 CentOS-7-x86_64-Minimal 最小化安装;
Python版本:Python-3.7.4
安装方式:Python-3.7.4.tar.xz 源码包编译安装

因为是刚安装的环境,需要初始化安装一些常用工具:

yum install vim
yum install wget
yum install lrzsz  # 非必选

先上图,随后开始安装流程:
python3_img_1.png

安装依赖包

yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

下载源码包

wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz  # 官网下载方式

官网下载速度慢,可以先下载到本地,再通过上面可选的小工具rz到linux目录下。

编译安装

[root@C100 ~]# tar -xvJf  Python-3.7.0a1.tar.xz  # 解压
[root@C100 ~]# cd Python-3.7.4
[root@C100 Python-3.7.4]# ./configure --prefix=/usr/local/bin/python3.7.4 --enable-shared --enable-universalsdk --enable-optimizations  # 设置编译环境
[root@C100 Python-3.7.4]# make
[root@C100 Python-3.7.4]# make install

解释下几个参数:

创建软链接

ln -s /usr/local/bin/python3.7.4/bin/python3 /usr/bin/python3
ln -s /usr/local/bin/python3.7.4/bin/pip3 /usr/bin/pip3

保留系统默认的 python2 环境,只将 python3 添加到 /usr/bin/ 路径下
python3_img_4.PNG

解决问题

  1. 解决缺少so文件的报错:
[root@C100 Python-3.7.4]# python3 -V
python3: error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory

解析:这是因为动态库文件 libpython3.7m.so.1.0 只被安装到了前面设置的软件路径下,而非系统默认的库路径
python3_img_2.png

python3_img_3.png

解决方法:
思路一:创建一个从 so 文件到 /usr/lib64/ 的软连接,或者直接将编译出来的 so 文件直接复制一份过去

[root@C100 Python-3.7.4]# cp libpython3.7m.so.1.0 /usr/lib64/

思路二:将 python3 的 lib 库所在路径加入到系统 so 动态库路径 /etc/ld.so.conf.d/ 中

[root@C100 ~]# echo '/usr/local/bin/python3.7.4/lib' > /etc/ld.so.conf.d/python3.7.conf
[root@C100 ~]# ldconfig
[root@C100 ~]# ldconfig -p | grep python  # 检查是否生效

2019年8月18日,更新软件版本和截图信息

Comments are closed.
  1. 设置 ./configure --prefix=/usr/local/ 可以避免后续一些麻烦

    Reply
    1. @ALIN

      ln -s /usr/local/lib/libpython3.7m.so.1.0 /usr/lib64/libpython3.7m.so.1.0

      Reply