【Python包】pip安装teradatasql时提示没有TLS/SSL模块(含安装Perl步骤)
1.问题描述
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
2.问题原因
当前行系统没有openssl或者版本比较低,一般python3.7需要的openssl的版本为1.0.2或者1.1.x。需要对openssl进行升级,并重新编译python3.7.0。yum 安装的openssl 版本都比较低。
3.解决方法
3.1升级openssl
openssl下载地址:openssl-1.1.1a.tar.gz
#创建安装目录 mkdir -p usr/local/openssl #解压 tar -zxvf openssl-1.1.1a.tar.gz cd openssl-1.1.1a # 编译安装 ./config --prefix=/usr/local/openssl no-zlib #不需要zlib make make install
# 备份原配置
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl/ /usr/include/openssl.bak
# 新版配置
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
# 修改系统配置
## 写入openssl库文件的搜索路径
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
## 使修改后的/etc/ld.so.conf生效
ldconfig -v
# 6.查看openssl版本
openssl version
openssl version 提示:
/usr/local/openssl/bin/openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
假如你的libssl.so.1.1 文件在/usr/local/openssl/lib/下面,可以这样做
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
3.3 重新安装python
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl
make
make install
参考文档:
解决pip is configured with locations that require TLS/SSL问题
在对OpenSSL升级包openssl-1.1.1a.tar.gz解压后,运行./configur编译的时候,它提示Perl的版本太低,无法编译。错误如下:
Perl v5.10.0 required--this is only v5.8.8, stopped at ./Configure line 12.
perl下载地址:https://www.perl.org/get.html#unix_like
参考文档:
原文地址:https://www.cnblogs.com/badboy200800/p/11207469.html
- 刷屏的背后:原来腾讯字体是CDC和Monotype联手打造的
- 重磅!腾讯与科大讯飞技术共创,Google ProtoBuf进入TARS家族!
- 一个简易版的T4代码生成"框架"
- yield在WCF中的错误使用——99%的开发人员都有可能犯的错误[上篇]
- 以上下文(Context)的形式创建一个共享数据的容器
- yield在WCF中的错误使用——99%的开发人员都有可能犯的错误[下篇]
- ASP.NET MVC下的四种验证编程方式
- 总体介绍ASP.NET Web API下Controller的激活与释放流程
- 如何让ASP.NET Web API的Action方法在希望的Culture下执行
- ASP.NET Web API标准的“管道式”设计
- ASP.NET Web API路由系统:Web Host下的URL路由
- ASP.NET Web API路由系统:路由系统的几个核心类型
- [ASP.NET] 如果将缓存“滑动过期时间”设置为1秒会怎样?
- [ASP.NET MVC] 利用自定义的AuthenticationFilter实现Basic认证
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法