在 CentOS 7 上编译安装 Python 3.11

安装必要的依赖

首先,你需要安装一些开发工具和库,以便编译 Python 和 OpenSSL:

yum -y groupinstall "Development tools"
yum install -y wget gcc-c++ pcre pcre-devel zlib zlib-devel libffi-devel zlib1g-dev openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel bzip2-devel
安装 OpenSSL

由于 CentOS 7 自带的 OpenSSL 版本较老,不满足 Python 3.10 或更高版本的要求,需要进行升级:

  1. 删除原有的 OpenSSL:

    yum remove openssl
  2. 更新信任的根证书:

    yum install ca-certificates
    update-ca-trust force-enable
    update-ca-trust extract
  3. 下载并安装最新的 OpenSSL:

    wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
    tar -zxf openssl-1.1.1w.tar.gz
    cd openssl-1.1.1w
    ./config --prefix=/usr/local/openssl
    make -j && make install
  4. 配置环境变量和链接:

    ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
    echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
    ldconfig -v
  5. 验证新版本的 OpenSSL:

    openssl version
安装 Python 3.11
  1. 下载 Python 3.11 的源码:

    wget https://www.python.org/ftp/python/3.11.7/Python-3.11.7.tgz
    tar xvzf Python-3.11.7.tgz
    cd Python-3.11.7
  2. 如果需要,更新 gcc 版本以支持性能优化:

    yum install centos-release-scl -y
    yum install devtoolset-10-gcc* -y
    source /opt/rh/devtoolset-10/enable
  3. 配置并编译 Python:

    ./configure --prefix=/usr/local/python3.11 --with-openssl=/usr/local/openssl --with-openssl-rpath=auto --enable-optimizations
    make -j && make altinstall
  4. 创建软链接以方便调用:

    ln -sf /usr/local/python3.11/bin/python3.11 /usr/bin/python3.11
    ln -sf /usr/local/python3.11/bin/pip3.11 /usr/bin/pip3.11
  5. 验证安装:

    python3.11 -V
    pip3.11 -V
使用虚拟环境

推荐在项目中使用虚拟环境,以避免影响全局环境:

cd /www/program/some-project
python3.11 -m venv venv
source venv/bin/activate

这样,你的项目环境将与全局环境隔离,可以更安全地管理依赖。

这个整理版既详细又条理清晰,便于你在实际操作或分享时使用。如有其他需求或需要进一步帮助,请告诉我!

相关推荐

  1. CentOS 7 编译安装 Python 3.11

    2024-07-22 14:48:05       14 阅读
  2. CentOS 7 编译安装 Nginx 1.18

    2024-07-22 14:48:05       37 阅读
  3. CentOS 7 安装 Redis

    2024-07-22 14:48:05       34 阅读
  4. 3分钟CentOS 7离线安装Docker

    2024-07-22 14:48:05       46 阅读
  5. CentOS 7.8 安装 Node.js

    2024-07-22 14:48:05       43 阅读
  6. CentOS 7安装MySQL 8.0

    2024-07-22 14:48:05       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 14:48:05       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 14:48:05       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 14:48:05       45 阅读
  4. Python语言-面向对象

    2024-07-22 14:48:05       55 阅读

热门阅读

  1. 算法学习3——搜索算法

    2024-07-22 14:48:05       16 阅读
  2. IaaS是什么的简称?关于IaaS的介绍

    2024-07-22 14:48:05       17 阅读
  3. [C++]——常见内存泄漏场景

    2024-07-22 14:48:05       15 阅读
  4. element表单disabled功能失效问题

    2024-07-22 14:48:05       16 阅读
  5. 塔子哥的浏览记录-小红书2024笔试(codefun2000)

    2024-07-22 14:48:05       20 阅读
  6. [算法题]mari和shiny

    2024-07-22 14:48:05       17 阅读
  7. 面试官:你对ConcurrentHashMap了解多少?

    2024-07-22 14:48:05       16 阅读
  8. 封装的通用链表(list.c/list.h/test_list.c)

    2024-07-22 14:48:05       17 阅读
  9. 将SQL中的占位符替换成参数

    2024-07-22 14:48:05       14 阅读