- 下载python3.x的安装包。官网www.python.org/ftp/python ,直接找需要的版本。
wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
- 解压
tar -xvzf Python-3.7.2.tgz
- 创建Python3目录
mkdir /usr/local/python3
- 进入到解压目录
Python-3.7.2
下,编译安装到刚才创建的目录下。注意:需要加上选项--enable-shared --enable-loadable-sqlite-extensions
或者--with-ssl
,否则后面使用PIP时报错Can’t connect to HTTPS URL because the SSL module is not available
。
./configure --enable-shared --enable-loadable-sqlite-extensions –prefix=/usr/local/python3
-
当前目录下编译安装
make
make install -
为了在系统中方便使用,创建软连接:
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
如果原来python2的名称被改了,要修改以下两个文件中第一行#!/usr/bin/python,改成现在python2的路径,否则yum会出错
vim /usr/bin/yum
vim /usr/libexec/urlgrabber-ext-down
- 遇到问题:
python3.7: error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory
解决:进入解压目录,拷贝文件:
cp libpython3.7m.so.1.0 /usr/lib64
- 关于pip3 install时ssl模块缺失的问题,参考了CentOS7 安装 Python3.7 及 SSL 编译错误处理这篇博文。
- 后来配置云服务器CentOS7时又遇到导入SSL模块失败的问题,报错
ModuleNotFoundError: No module named '_ssl'
,查阅资料,最主要的可能是:
- 安装libressl2.x版本(找libressl官网,wget获取gz包手动安装),configure make makeinstall进行完毕,然后进入
/etc/ld.so.conf.d/
,这个目录是记录lib文件的位置的。vim python3.conf
,写入python3/lib安装的位置;vim libressl.conf
,写入libressl/lib安装的位置。 - 编译安装Python3的那个目录,进入
Modules/
,vimSetup
和Setup.dist
文件,命令行输入/ssl
找到ssl字符串位置,把ssl相关的文本去掉注释(一共有三个#需要去掉) - 一切完成之后在python3命令行输入
import ssl
终于不报错了。