centos 7.9 安装python 3.10的tls问题,

本地开发升级成了py3.10.6,服务器测试时安装py3.10.4 发现无法正常使用pip3

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

印象中py3的高版本依赖高版本的openssl,centos 7下默认的openssl为1.0.x,

问题很简单,升级openssl,期间各种奇葩问题.包括但不限于修改setup配置等等

最后附上整理好的解决办法

复制代码
# -*- encoding: utf-8 -*-
"""
@File    : script.py
@Time    : 2023/10/20 1:30
@Author  : Perry
@Email   : 344417817@qq.com
@Software: PyCharm
"""
import subprocess


def cmd_call(cmd):
    for i in cmd:
        print('*' * 10, i)
        subprocess.call(i, shell=True)


def install_python310():
    cmd = [
        r'rm -rf Python-3.10.6.tgz',
        r'rm -rf Python-3.10.6',
        r'wget  https://www.python.org/ftp/python/3.10.6/Python-3.10.6.tgz',
        r'tar -zxvf Python-3.10.6.tgz',

        r'cd Python-3.10.6 && ./configure --prefix=/usr/local/python3 -with-openssl=/usr/local/openssl && make && make install',
        r'rm -rf /usr/bin/python3 && rm -rf /usr/bin/pip3',
        r'cd /usr/bin/ && ln -s /usr/local/python3/bin/python3 python3 && ln -s /usr/local/python3/bin/pip3 pip3',
    ]
    cmd_call(cmd)

def install_openssl():
    cmd = [
        r'wget https://github.com/openssl/openssl/archive/refs/tags/OpenSSL_1_1_1q.tar.gz',
        r'tar -zxvf openssl-OpenSSL_1_1_1q',
        r'cd openssl-OpenSSL_1_1_1q',
        r'./config --prefix=/usr/local/openssl shared zlib ',
        r'make  && make install ',

        r'rm -rf /usr/bin/openssl',
        r'rm -rf /usr/include/openssl',
        r'rm -rf /usr/lib64/libssl.so',
        r'rm -rf /usr/lib64/libcrypto.so',

        r'ln -s /usr/local/openssl/include/openssl /usr/include/openssl',
        r'ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl',
        r'ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so',
        r'ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so',

        r'ldconfig'

    ]
    cmd_call(cmd)

def update():
    '''
    有重复命令
    :return: 
    '''
    cmd = [
        r'cd /root',
        r'yum -y upgrade ',
        r'yum -y install wget',
        r'yum -y install gcc gcc-c++',
        r'yum -y install perl zlib-devel bzip2 bzip2-devel openssl-devel ncurses-devel readline-devel tk-devel gdbm-devel '
        r'db4-devel libpcap-devel xz-devel',
        r"yum install -y libcurl-devel wget tar gcc make zip unzip openssl openssl-devel gcc libxml2 libxml2-devel libxslt* zlib zlib-devel libjpeg-devel libpng-devel libwebp libwebp-devel freetype freetype-devel lsof pcre pcre-devel vixie-cron crontabs icu libicu-devel c-ares libffi-devel bzip2-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel",
        r"yum install -y wget curl libcurl4-openssl-dev gcc make zip unzip tar openssl libssl-dev gcc libxml2 libxml2-dev zlib1g zlib1g-dev libjpeg-dev libpng-dev lsof libpcre3 libpcre3-dev cron net-tools swig build-essential libffi-dev libbz2-dev libncurses-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libdb++-dev libpcap-dev xz-utils git",
        r'yum install -y libXext libSM libXrender ',
    ]
    cmd_call(cmd)

def main():
    update()
    install_openssl()
    install_python310()
if __name__ == '__main__':
    main()
相关推荐
2601_967987374 分钟前
如何运行 Python 代码
python·最佳实践·脚本文件·代码运行·交互式环境
WiKiLeaks_successor5 分钟前
重构Time库的抽象设计
python·重构
AI源码15 分钟前
基于 Python 的短视频用户行为分析系统
开发语言·python
GeW24 分钟前
国产化替代进入深水区之后Linux 与数据库为什么必须走向重建
linux
第九序言T27 分钟前
数据分析岗 Pandas 面试题 20 道(上):概念与读代码
python·数据分析·pandas·数据处理
Dmz丶28 分钟前
前端转 AI 100 天 Day 37:Few-shot 与 CoT——让模型学会“推理”
python
孟健1 小时前
我用Grok Bot本地剪口播视频,3段提示词搞定气口切除、字幕与封面
人工智能·python·aigc
2601_966949651 小时前
如何封装 qd.klines.batch(),让批量 K 线查询函数在多个策略中复用?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
神仙别闹3 小时前
基于Python实现英词语自动对齐系统
开发语言·python
老歌老听老掉牙3 小时前
圆柱端面四平面交线及其在yoz面投影的几何解析与 Python 实现
开发语言·python·平面