阅读时长:10分钟
本文内容: 在阿里云Centos7上部署python3.10.6项目时遇到openSSL协议不支持,导致无法下载第三方包
本文目的:
- 通过手动编译,升级openssl版本
- centos7 重编译 python3.10.6
- github下载缓慢解决
- 镜像源记录
阿里云Centos7 安装openSSL以及python3.10
整个部署问题的起因就是centos7上系统上自带的openssl版本太低了,导致无法使用 python3+版本。所以要先升级openssl版本
在CentOS7中安装 Python3.10,需要先升级 OpenSSL,系统默认的 OpenSSL版本为1.0.2,版本太低了, 在后面编译安装PIP的时候会报错。
一、升级openssl
yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel pcre-devel
2.进入到 /usr/local/src 目录,将稍后下载的文件放在此目录。
cd /usr/local/src
3.到OpenSSL官方网站下载源码,解压并进入软件包目录:
wget <https://www.openssl.org/source/openssl-1.1.1q.tar.gz> --no-check-certificate
tar -zxvf openssl-1.1.1q.tar.gz
cd openssl-1.1.1q
4.编译安装
./config
make && make install
5.备份系统中的旧 OpenSSL 可执行文件
mv /usr/bin/openssl /usr/bin/openssl.old
6.创建符号链接以关联新安装的 OpenSSL 可执行文件
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
7.向动态链接库配置文件添加新的 OpenSSL 库路径
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
8.使用 ldconfig 命令刷新动态链接库缓存,使新配置生效
ldconfig -v
9.检查版本是否升级成功
openssl version
安装python3.10
1.进入到 /usr/local/src
目录,将下载的文件放在此目录。
cd /usr/local/src
# 下载
wget https://www.python.org/ftp/python/3.10.6/Python-3.10.6.tgz
# 解压
tar -xvzf Python-3.10.6.tgz
2.提前安装稍后编译时会用到的工具
yum -y install gcc zlib zlib-devel libffi libffi-devel
3.配置并编译
# 查看
ls -a
# 进入目录
cd Python-3.10.6
# 运行 configure 脚本,配置编译参数(configure是一个没有后缀的脚本文件)
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl --enable-shared --enable-optimizations
# 使用 make 命令编译 Python 3.10 源代码
# make 命令会根据配置参数编译源代码并生成可执行文件
make & make install
4.创建软链接,centos默认安装有python2.7版本,本文两个版本共存
# 第一个地址是 源文件的路径,也就是软链接指向的文件。这个文件通常是 python3 的一个安装位置
# 第二个地址是 软链接的路径,也就是你想要创建的软链接的位置。这个位置通常是系统路径,系统会在这个路径下搜索可执行文件。
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
5.检查是否安装成功
python -V
pip -V
其他错误
- 在通过
python -V
验证 python版本时出现报错:
python3: error while loading shared libraries: libpython3.10.so.1.0: cannot open shared object file: No such file or directory
解决办法:
# 查看
cd /usr/local/lib
# 将下载的python包目录中的文件 复制一份到 指定目录
sudo cp /usr/local/src/Python-3.10.6/libpython3.10.so.1.0 /usr/local/lib
# 设置动态链接库地址。注意该目录下就是上一步的 指定目录 。该目录下有文件:libpython3.10.so.1.0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
#查看
echo $LD_LIBRARY_PATH
问题解析:
这个报错是python的动态链接库找不到导致的报错,只需要重新设置动态链接库地址即可。
- 找到python3的位置,查找指令:
whereis python3
。 python的安装位置在上面配置configure时通过prefix进行配置,在此处是:/usr/local/python3
. python文件下载位置上面也有,位于/usr/local/src/Python-3.10.6
- 通常当安装了python3后,python3的动态链接库都位于
/usr/local/lib
- 临时设置动态链接:通过上面的export的方式设置,只存在与当前会话窗口,关机后就没了
- 永久设置动态链接: 通过在文件
/etc/ld.so.conf
中写入存放动态链接文件的位置(也可以是python的lib目录)
并保存
# 编辑
vi /etc/ld.so.conf
# 添加一行: /usr/local/lib
# 让改动生效
sudo ldconfig
以下是我的 /etc/ld.so.conf
文件中的内容
include ld.so.conf.d/*.conf
/usr/local/openssl/lib
/usr/local/lib
- 在Linux系统中,
LD_LIBRARY_PATH
是一个环境变量,用于指定动态链接器搜索共享库时的路径
# 设置
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/the/path/you/want/set
export LD_LIBRARY_PATH=/the/path/you/want/set
# 查看动态链接库设置
echo $LD_LIBRARY_PATH
# 清除所有动态链接库设置
unset LD_LIBRARY_PATH
阿里云centos7 访问github缓慢
- git clone 特别慢,是因为
github.global.ssl.fastly.net
域名被限制了,只要找到这个域名对应的 IP 地址,然后在 hosts 文件中加上 ip–>域名 的映射,刷新 DNS 缓存便可。
# 安装
yum -y install bind-utils
# 获取两组 Name 和 Address
nslookup github.global.ssl.fastly.net
nslookup github.com
添加
$ sudo vim /etc/hosts
例如我拿到上面得到的IP地址后,添加了两行:
69.171.229.73 http://global-ssl.fastly.net
13.250.177.223 http://github.com
nscd 命令更新 DNS 缓存
# 如果没有安装,则需要安装一下
yum install -y nscd
# 更新 DNS 缓存
nscd -i hosts
然后再次执行 git clone https://github.com/XXX
,速度起飞
设置下载源
- 临时更改:在安装包时,使用-i参数指定源的URL。
例如,使用清华源安装包packagename,命令为
pip install packagename -i https://pypi.tuna.tsinghua.edu.cn/simple
- 永久更改:使用
pip config set global.index-url
命令直接指定下载源的URL,这样就不用每次都手动修改了。
例如,将下载源永久更改为清华源,命令为
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
或者通过打开文件手动更改:vi ~/.pip/pip.conf
文章来源:https://www.toymoban.com/news/detail-790045.html
[global]
index-url = <http://pypi.douban.com/simple/>
[install]
trusted-host = pypi.douban.com
- 清华:https://pypi.tuna.tsinghua.edu.cn/simple
- 阿里云:https://mirrors.aliyun.com/pypi/simple
- 腾讯:http://mirrors.cloud.tencent.com/pypi/simple
- 豆瓣:http://pypi.douban.com/simple/
卸载Python3
#卸载python3
rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps
#删除所有残余文件
whereis python3 |xargs rm -frv
#查看现有安装的python,验证是否删除干净
whereis python
其他指令
查看当前虚拟环境的值:文章来源地址https://www.toymoban.com/news/detail-790045.html
- echo $VIRTUAL_ENV (仅当激活了虚拟环境时,才会有值)
到了这里,关于Centos7 openSSL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!