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/pip3rpm安装
因为默认情况下,Centos 7.x安装的python版本是2.7.5
需要安装python3,步骤如下:
- 在如下网址下载python3对应的rpm包:
- yum install python3*
注意:目前提供的最高版本是:3.6.8
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
在安装一些软件的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



