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=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文件的如下内容:
#找到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
CentOS7.6编译安装Python-3.7.4的更多相关文章
- 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 ...
- 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 二.安装所需依 ...
- Linux Centos7.2 编译安装PHP7.0.2
操作环境: 1.系统:Centos7.2 2.服务:Nginx 1.下载PHP7.0.2的安装包解压,编译,安装: $ cd /usr/src/ $ wget http://cn2.php.net/d ...
- 编译安装python
编译安装python 1.下载python3的原码包 1.1下载到到opt目录中 cd /opt 1.2下载python3的原码包 wget https://www.python.org/ftp/py ...
- CentOS7.6编译安装openssl-1.1.1c
卸载旧版本OpenSSL # which openssl/usr/bin/openssl# mv openssl openssl.oldrm -rf /etc/ssl #删除配置文件 CentOS7. ...
- CentOS7下编译安装redis-5.0.9
CentOS7下编译安装redis-5.0.9 本文地址http://yangjianyong.cn/?p=171转载无需经过作者本人授权 下载redis #code start wget https ...
- 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 ...
- CentOS 6.7 final编译安装Python 2.7.11
CentOS 6.7默认的Python版本为2.6.6,现升级为Python 2.7.11 1.安装编译环境 yum groupinstall "Development tools" ...
- CentOS6.4 编译安装Python 3.3.2 - CRPER木木
基础环境: CentOS6.4(预装GCC,或者联网YUM---GCC编译写进这里太臃肿,找机会另外写一篇) Python 3.3.2 下载链接: http://www.python.org/ ...
随机推荐
- USACO 2014 US Open Fair Photography /// 技巧
题目大意: 给定n头奶牛 给定n头奶头所在位置和品种 品种只有G H两种 求一段区间的长度 要求区间内包含的品种满足各品种的数量相同 将一个品种的值设为1 另一个设为-1 假设 i<j 而 1~ ...
- go strconv
strconv是golang用来做数据类型转换的一个库. 介绍下strconv最常用的两个方法, 没有解释语言那么自在可以str(int),int(string), 那还算简练. num, err : ...
- 5、springcloud整合mybatis注解方式
1.上一篇学习了服务提供者provider,但是并不是单单就学习了服务提供者.中间还穿插使用了Hikari数据源和spring cloud整合mybatis.但是上篇使用mybatis时还是沿用了老的 ...
- 关于Puppeteer的那些事儿
最近开始上手一个自动化测试工具Puppeteer,来谈一谈关于它的一些事儿. Puppeteer中文文档:https://zhaoqize.github.io/puppeteer-api-zh_CN/ ...
- 矩阵的 Frobenius 范数及其求偏导法则
cr:http://blog.csdn.net/txwh0820/article/details/46392293 一.矩阵的迹求导法则 1. 复杂矩阵问题求导方法:可以从小到大,从scalar到 ...
- 前端学习(一)html标签(笔记)
html->标签 标题标签:<h1>标题文字</h1>段落标签:<p>段落文字</p>换行标签:<br/>图片标签:<img s ...
- C# 进制转换(二进制、十六进制、十进制互转) 转载 https://www.cnblogs.com/icebutterfly/p/8884023.html
C# 进制转换(二进制.十六进制.十进制互转)由于二进制数在C#中无法直接表示,所以所有二进制数都用一个字符串来表示例如: 二进制: 1010 表示为 字符串:"1010" int ...
- 高性能js之js文件的加载与解析
随着网站的发展,现在的网页已经离不开js,经常一个页面会引入大量的js.那么该如何合理的加载这些js? head标签中引入js文件可能是最常见的一种方式,但是这样会造成一个问题.因为j可以说是浏览器中 ...
- vue中使用v-if判断数组长度是出现length报错
在vue中使用v-if判断数组的长度时出现报错 <el-collapse-item :key="index" v-if="data.childrens.length ...
- 关于axios中post请求提交后变成get的问题
这个问题归结于自己的不细心,如下图. 头疼了好久,才发现是自己多写了一个s,在此记录一下.