CentOS7.6编译安装Python-3.7.4

安装步骤

1. 下载安装包。
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
<说明>若是报SSL/TSL错误,则加上 --no-check-certificate 选项
2. 解压缩
tar -xzvf Python-3.7.4.tgz
cd Python-3.7.4
3. 配置
* 查看配置选项。
./configure --help
* 经常使用配置选项配置
--prefix=/usr/local/python3  #pyhton的安装路径
--with-openssl=/usr/local/openssl   #OpenSSL库的安装路径
* 若是您想要一个包含全部稳定优化活动的版本构建,能够添加下面的选项(不过通常不须要,这个配置检查过程会很耗时的)
--enable-optimizations
* 查看系统是否安装了OpenSSL
rpm -qa|grep -i openssl
* 查看OpenSSL版本
openssl version -a  #会显示出OpenSSL的安装路径
* 个人安装配置选项
./configure --prefix=/usr/local/python3  --with-openssl=/usr/local/openssl  --with-ssl-default-suites=pythonhtml

4. 编译和安装。
make && make installpython

设置环境变量

* 创建python命令的软连接
ln -s /usr/local/python3/bin/python3.7 /usr/local/bin/python
* 修改/etc/profile,添加以下内容:
export PATH=$PATH:/usr/local/python3/bin
保存后,执行: source /etc/profile
* 执行命令查看安装版本
# python --version
Python 3.7.4
* 直接运行Python命令,检测是否安装成功
# python
Python 3.7.4 (default, Sep 10 2019, 01:13:53)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
# 当输出上面的信息表示Python-3.7.4安装成功了。linux

pip工具的设置

Python-3.7.4版本是自带有pip工具的,安装成功后,在安装路径/usr/local/python3/bin下有pip3和pip3.7两个可执行文件。
* 创建pip3命令的软连接
ln -s /usr/local/python3/bin/pip3.7 /usr/local/bin/pip3centos

* 查看pip的版本信息:pip3 -V/--versionbash

* 查看帮助信息:pip3 -h/--help  或者 pip3 help工具

安装过程遇到的问题

1. ModuleNotFoundError: No module named '_ctypes'
这个须要安装依赖库libffi-devel,执行命令以下:
yum install libffi-devel -y # -y表示对全部的提问都回答yes优化

 2. pip工具安装Python三方库时报pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.ui

这个须要安装OpenSSL依赖库,安装Python-3.7.4以前先安装OpenSSL,最好是安装openssl-1.1.x版本的。安装Python成功后,执行以下命令:centos7

# python
Python 3.7.4 (default, Sep 10 2019, 23:12:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sslspa

若是不报错,这说明ssl设置成功了。能够使用pip install <package>来安装Python第三方库了。

题外话:我在网上看到,要结果ModuleNotFoundError: No module named '_ssl'的错误,须要修改Python-3.7.4/Modules目录下的Setup.dist和Setup文件的以下内容:

#找到SSL相关配置
#SSL=/usr/local/ssl
#_ssl _ssl.c \
#        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
#        -L$(SSL)/lib -lssl -lcrypto

#取消掉上面4行注释,即
SSL=/usr/local
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib64 -lssl -lcrypto

#SSL= 后面跟的是OpenSSL的安装路径,好比说个人安装路径是/usr/local/openssl,那就修改成
SSL=/usr/local/openssl,能够经过openssl version -a命令查看安装路径。

可是,我以为这个比较麻烦,个人安装过程是没有修改Modules目录下的Setup.dist和Setup的这两个文件的,可是import ssl仍然是成功的,没有报错。

Reference

ImportError: No module named _ssl解决方法  https://blog.csdn.net/xiemanR/article/details/85224509

centos7.3编译安装OpenSSL1.1.1b  https://cloud.tencent.com/developer/article/1406810

centos6.8安装python3.7.3报错Can't connect to HTTPS URL because the SSL module is not available问题解决  http://www.mamicode.com/info-detail-2713977.html

CentOS7.6编译安装openssl-1.1.1c https://www.cnblogs.com/yunfan1024/p/11504039.html

相关文章
相关标签/搜索