安装步骤

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=python

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

设置环境变量

* 建立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安装成功了。

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/pip3

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

* 查看帮助信息: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.

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

# 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 ssl

如果不报错,这说明ssl设置成功了。可以使用pip install <package>来安装Python第三方库了。

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

  1. #找到SSL相关配置
  2. #SSL=/usr/local/ssl
  3. #_ssl _ssl.c \
  4. # -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
  5. # -L$(SSL)/lib -lssl -lcrypto
  6.  
  7. #取消掉上面4行注释,即
  8. SSL=/usr/local
  9. _ssl _ssl.c \
  10. -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
  11. -L$(SSL)/lib64 -lssl -lcrypto
  12.  
  13. #SSL= 后面跟的是OpenSSL的安装路径,比如说我的安装路径是/usr/local/openssl,那就修改为
  14. 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

CentOS7.6编译安装Python-3.7.4的更多相关文章

  1. centos7.6编译安装php7.2.11及redis/memcached/rabbitmq/openssl/curl等常见扩展

    centos7.6编译安装php7..11及redis/memcached/rabbitmq/openssl/curl等常见扩展 获取Php的编译参数方法: [root@eus-api-cms-bac ...

  2. centos7下编译安装php-7.0.15(PHP-FPM)

    centos7下编译安装php-7.0.15(PHP-FPM) 一.下载php7源码包 http://php.net/downloads.php 如:php-7.0.15.tar.gz 二.安装所需依 ...

  3. Linux Centos7.2 编译安装PHP7.0.2

    操作环境: 1.系统:Centos7.2 2.服务:Nginx 1.下载PHP7.0.2的安装包解压,编译,安装: $ cd /usr/src/ $ wget http://cn2.php.net/d ...

  4. 编译安装python

    编译安装python 1.下载python3的原码包 1.1下载到到opt目录中 cd /opt 1.2下载python3的原码包 wget https://www.python.org/ftp/py ...

  5. CentOS7.6编译安装openssl-1.1.1c

    卸载旧版本OpenSSL # which openssl/usr/bin/openssl# mv openssl openssl.oldrm -rf /etc/ssl #删除配置文件 CentOS7. ...

  6. CentOS7下编译安装redis-5.0.9

    CentOS7下编译安装redis-5.0.9 本文地址http://yangjianyong.cn/?p=171转载无需经过作者本人授权 下载redis #code start wget https ...

  7. centos7编译安装Python 3.6.8 后用pip3出现SSL未配置问题(import ssl失败)解决方法

    下载源码编译安装openssl https://www.openssl.org/source/openssl-1.0.2j.tar.gz ./config --prefix=/usr/local/op ...

  8. CentOS 6.7 final编译安装Python 2.7.11

    CentOS 6.7默认的Python版本为2.6.6,现升级为Python 2.7.11 1.安装编译环境 yum groupinstall "Development tools" ...

  9. CentOS6.4 编译安装Python 3.3.2 - CRPER木木

    基础环境: CentOS6.4(预装GCC,或者联网YUM---GCC编译写进这里太臃肿,找机会另外写一篇) Python 3.3.2     下载链接: http://www.python.org/ ...

随机推荐

  1. LeetCode Array Easy 27. Remove Element 解题

    Given an array nums and a value val, remove all instances of that value in-place and return the new ...

  2. mac 创建多个全局Path

    cd ~ 进入根目录 (没有这个文件 先touch .bash_profile) open -e .bash_profile 打开编辑然后保存 JAVA_HOME=/Library/Java/Java ...

  3. postgresql 数据库的备份和还原

    第一步:通过 cmd 进入到postgresql 安装目录的 bin 下: windows : cd C:\PostgreSQL\pg95\bin ubuntu : cd /etc/postgresq ...

  4. android5.1 修改音量键绑定多媒体声音

    修改此文件frameworks/base/media/java/android/media/AudioService.java中函数 private int getActiveStreamType(i ...

  5. 统计List中相同的元素

    public static <E> List<E> getCommonsElements(List<E> list) { return list.stream() ...

  6. day09 python函数 返回值 参数

    day09 python   一.函数     1.函数         函数是对功能的封装         语法:         定义函数:             def 函数名(形参):    ...

  7. CSS文字超出省略

    .ellipsis { white-space:nowrap overflow:hidden text-overflow:ellipsis }

  8. React Native 安卓模拟器调出Dev Setting

    Android Studio 模拟器调出Dev Setting 实现热更新 cmd进入项目目录 F:\study\AwesomeProject> 执行 adb shell input keyev ...

  9. Android中.9图片的了解和制作过程

    个部分(九宫格),分别为4个角,4条边,以及一个中间区域,4个角是不做拉升的,所以还能一直保持圆角的清晰状态,而2条水平边和垂直边分别只做水平和垂直拉伸,所以不会出现边会被拉粗的情况,只有中间用黑线指 ...

  10. 笨办法学Python记录--习题37 异常,lambda,yield,转义序列

    习题中提到了raise,查了下,顺便所有异常类关键字罗列如下文章中: 为什么使用异常 错误处理.事件通知.特殊情况处理.退出时的行为.不正常的程序流程. 简单的示例 在没有任何定义x变量的时候: pr ...