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.so
和libpython3.6m.so.1.0
两个文件
如果不加上面的添加,产生的文件是: libpython3.6m.a
error while loading shared libraries: libpython3.6m.so.1.0
在运行python3
或 python3 -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