本章目录
看了很多答案,有的说是镜像问题走了一些弯路,虽然pip后加网址镜像(更换镜像源点此)能暂时解决问题,但是在import一些包时python还是会报错 import –ssl 。我安装的是python3.10,这个问题是openssl没有升级造成了。openssl升级方法参见以下
一. centOS7离线安装python3.10运行环境
前言:因为总总原因,服务器内网运行不能联网,在部署前也没有装好环境,离线安装需要很多依赖包,安装过程很简单也很耗时,梳理一下过程,希望能给我一样有离线安装需求的小伙伴一些帮助。
———————————————————————————————————————————
我的系统几乎是个白板,下载各种依赖跑断腿,环境还是有问题。最后按了虚拟机记录各种依赖包,然后下载。下面是依赖包资源,也可以自己去镜像里下。
centOS7离线安装python3.10运行环境rpm依赖-Linux文档类资源-CSDN下载
将文件夹解压上传到服务器上,执行下面语句安装(linux小白,每个语句都需要查)
cd /rpm目录
rpm -Uvh --force --nodeps *rpm
———————————————————————————————————————————
二. CentOS 7 安装 Python 3.10
1. 安装编译所需的依赖
sudo yum -y update
sudo yum -y install openssl-devel libffi-devel bzip2-devel
sudo yum -y groupinstall "Development Tools"
2. 安装 Python 3.10 必需的 openssl >= 1.1.1
wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz --no-check-certificate
tar zxf openssl-1.1.1q.tar.gz
cd openssl-1.1.1q
./config --prefix=/usr/local/openssl-1.1.1
sudo make && sudo make install
3. 安装 Python 3.10
wget https://www.python.org/ftp/python/3.10.5/Python-3.10.5.tgz
tar zxf Python-3.10.5.tgz
cd Python-3.10.5
./configure --enable-optimizations --with-openssl=/usr/local/openssl-1.1.1 --with-openssl-rpath=auto
sudo make altinstall
4. 添加软链接
先查看系统python的位置在哪儿
whereis python
python2.7默认安装是在 /usr/bin目录中,切换到/usr/bin/
cd /usr/bin/
ll python*
我这里已经软链接了,正常未链接之前是python->python2.7而不是python3.10
mv /usr/bin/python /usr/bin/python.bak
添加python3的软链接
ln -s /usr/local/python3/bin/python3.10 /usr/bin/python
或者
ln -s /usr/local/bin/python3.10 /usr/bin/python
python -V
yum -y install epel-release
安装pip
yum install python-pip
更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用
vi /usr/bin/yum
#! /usr/bin/python2
vi /usr/libexec/urlgrabber-ext-down
修改如下
#! /usr/bin/python2
三. Caused by SSLError(“Can‘t connect to HTTPS URL because the SSL module is not available.“) 详解
前言
本文描述手动编译 python3.10 缺少 openssl 模块问题解决方案和几个小时解决这个问题的全过程。虽然我编译的是 python3.10,但是对于 python3.6、python3.8 应该同样适用(打脸了,python3.8 查看这篇文章)。
解决方案
我的服务器环境是 centos7,如果是其他环境,某些命令可能用不了,自行百度一下。下面进入正题:
安装 openssl-1.1.1
-
wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz --no-check-certificate
-
tar -zxf openssl-1.1.1n.tar.gz
-
cd openssl-1.1.1n
-
./Configure --prefix=/usr/local/openssl
-
编译并安装
make -j && make install
重新编译 python3.10
-
./configure –prefix=/usr/local/python3 –with-openssl=/usr/local/openssl –with-openssl-rpath=auto 标粗的这个一定别漏了
-
make -j && make install
详细过程
-
Caused by SSLError(“Can’t connect to HTTPS URL because the SSL module is not available.”)
-
-_-||, 之前编译vim8 需要python3,装了几个版本的python3 ,但是ssl这个报错都存在,看来得先把这个解决,不然不能保证python3是完整可用的。
-
yum update -y openssl openssl-devel
-
编译要带编译选项,我就想看下之前编译时传了哪些参数,避免影响其他功能了,那怎么查看已经编译好的python 用了什么编译选项呢?
-
还有个准备工作,我应该加什么编译参数? 因为我印象中我之前编译的时候,加过各种各样带有
openssl
的编译选项,但是都没啥用。例如:--with-openssl=/usr/local/openssl/lib
-
./configure --help
-
但是我并不知道这个参数是传 openssl 的什么目录,网上查了一通,有人说什么都不跟,那就试一下先,结果报错如下:
./configure --prefix=/usr/local/python3 –with-openssl
-
通过后续使用 ssldirs 的代码可以看出这里传递的目录名应该包含以下文件:
xxx/include/openssl/ssl.h 头文件 xxx 为 --with-openssl=xxx 中的路径信息
xxx/lib/libssl.so 和 xxx/lib/libcrypto.so 动态库文件
-
再次配置
./Configure --prefix=/usr/local/openssl
-
编译安装
make && make install
-
查看安装好的文件目录发现
/usr/local/openssl
下面没有lib 目录
,只有 lib64,但是我们上面提到,该路径下必须有xxx/lib/libssl.so
,那么我们手动 copy 出来一个:cp -rf /usr/local/openssl/lib64 /usr/local/openssl/lib
-
重新编译 pyton3.10
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl
编译,但是报错了
make -j
-
和前面安装 openssl-3.0 步骤一样,只是链接改成
https://www.openssl.org/source/openssl-1.1.1n.tar.gz
,编译好了 openssl 1.1.1 ,再来编译python,又报错说找不到libssl.so.1.1: -
这次报错信息就很明确了,找不到对应的库 libssl.so.1.1。我严重怀疑之前 3.0 这里也是报的这个错误信息,大家可以自己试试。
-
这里插一句 可以用
make -j
加快编译,不要make && make install
, 因为这种不阻断流程的错误信息,你就看不到了,我最开始就是 -_-||./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl –with-openssl-rpath=auto
-
编译成功,至少这次没有刚才的关于 openssl 的错误信息了,现在 make Install 安装
- 因为没有把
/usr/local/python3/bin
加到path里面,所以只能显示调用安装位置的 pip_search 程序,到这里为止,带openssl 模块的 python3.10 可以确认是安装好了。
结语
耐心看手册,细心看日志,可以少走一些弯路。
Caused by SSLError(“Can‘t connect to HTTPS URL because the SSL module is not available.“) 详解
python3安装pip install报错Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirm
原文地址:https://blog.csdn.net/weixin_54626591/article/details/134413650
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_11209.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!