Centos 7.x Python3的三种安装方式及遇到的各种坑

本文详细介绍了如何在Centos 7.x上从源代码编译安装Python 3.6.8,并处理了libpython3.6m.so缺失的问题,包括创建安装目录、编译安装、软链接设置以及rpm包安装和环境变量配置。还探讨了解决python(abi)=3.6isneeded错误的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python3 安装

编译安装

wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz   
 
#解压源码包 
tar -xvJf Python-3.6.8.tar.xz   
 
#创建安装目录 
mkdir /usr/local/python3
 
cd Python-3.6.8/

#安装到指定目录
./configure --prefix=/usr/local/python3
 
# 编译
make && make install

# 创建软链接
ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3

rpm安装

因为默认情况下,Centos 7.x安装的python版本是2.7.5
需要安装python3,步骤如下:

  • 在如下网址下载python3对应的rpm包:
  • yum install python3*

注意:目前提供的最高版本是:3.6.8
在这里插入图片描述

yum安装

yum install python3

填坑

不能产生libpython3.6m.so文件

编译第三方静态库,在configure阶段增加CFLAGS=-fPIC 参数
./configure --prefix=/usr/local/python3 --enable-shared CFLAGS=-fPIC

在安装后,才会在/usr/local/python3/lib目录下产生 libpython3.6m.solibpython3.6m.so.1.0 两个文件

如果不加上面的添加,产生的文件是: libpython3.6m.a

error while loading shared libraries: libpython3.6m.so.1.0

在运行python3python3 -V时报:python: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory

解决步骤:

  • ldd是列出动态库依赖关系 ldd /usr/bin/python3
  • 查看动态库:find / -name 'libpython3.6m.so.1.0'
  • 添加动态库目录
    • 在/etc/ld.so.conf.d/ 目录下创建文件python3.conf
    • 内容是: libpython3.6m.so.1.0文件路径的目录,如/usr/local/python3/lib
  • 使配置生效 ldconfig

报python(abi)=3.6 is needed

在安装一些软件的rpm包时,会报python(abi)=3.6 is needed,导致安装失败

解决方案:采用 上面 的 rpm安装方式安装python,注意:采用编译安装方式不能解决此问题

常用的编译参数

  • –enable-optimizations参数能够让python提升10%的性能。
  • –with-ensurepip确保同时安装上pip包管理器
  • make altinstall 以避免将之前的python版本覆盖

如何配置环境变量

  • PYTHONHOME 指定PYTHON的安装目录 export PYTHONPATH=/usr/local/python3/
  • PYTHONPATH
    • export PYTHONPATH=/usr/local/python3/lib/python3.6:/usr/local/python3/lib/python3.6/site-packages/:/usr/local/python3/lib/python3.6/lib-dynload
    • 官方文档 The Module Search Path
      在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

enjoy编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值