centos7 python3.13全套安装(可用于离线复制)

#ssl sqlite 的依赖库的复制(******整套的核心) ##########################################

PY_PREFIX="/data/disk1/python3"

mkdir -p "${PY_PREFIX}/lib"

cd "${PY_PREFIX}/lib"

2. 复制 OpenSSL 和 SQLite 库

cp /usr/local/openssl/lib/libssl.so.1.1 "${PY_PREFIX}/lib/"

cp /usr/local/openssl/lib/libcrypto.so.1.1 "${PY_PREFIX}/lib/"

cp /usr/local/lib/libsqlite3.so.0.8.6 "${PY_PREFIX}/lib/"

ln -sf "libssl.so.1.1" "libssl.so"

ln -sf "libcrypto.so.1.1" "libcrypto.so"

ln -sf "libsqlite3.so.0.8.6" "libsqlite3.so"

ln -sf "libsqlite3.so.0.8.6" "libsqlite3.so.0"

export LD_LIBRARY_PATH="{PY_PREFIX}/lib:{LD_LIBRARY_PATH}"

上文为关键节点,下文为流水记账

进入window for linux

powershell

wsl -d CentOS7 # 进入

wsl --shutdown # 退出

C:\Users\data 映射 /mnt/c/Users/data

下载python gcc ssl(最好ssl sqlite 直接安装在python安装目录中 )

#!/bin/bash

set -e

mkdir -p /data/offline_py313/{rpm,src}

cd /data/offline_py313/rpm

yum install -y yum-utils

yumdownloader --resolve \

gcc gcc-c++ make cmake zlib-devel bzip2-devel openssl-devel \

ncurses-devel readline-devel tk-devel gdbm-devel \

db4-devel libpcap-devel xz-devel libffi-devel wget epel-release

sqlite-devel 用wget下载

wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/perl-ExtUtils-MakeMaker-6.68-3.el7.noarch.rpm

wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/perl-Locale-Maketext-Simple-0.21-297.el7.noarch.rpm

wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/perl-Module-Load-Conditional-0.54-3.el7.noarch.rpm

wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/perl-Params-Check-0.38-2.el7.noarch.rpm

wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/perl-IPC-Cmd-0.80-4.el7.noarch.rpm

rm

cd /data/offline_py313/src

wget https://ftp.gnu.org/gnu/gcc/gcc-11.2/gcc-11.2.tar.gz

wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz

wget https://github.com/openssl/openssl/releases/download/openssl-3.1.7/openssl-3.1.7.tar.gz

wget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz

他自己会自动重试多次 可能成功 302的情况下

wget https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-1.1.1w.tar.gz

wget https://release-assets.githubusercontent.com/github-production-release-asset/7634677/b4c6e1f3-d928-4de0-a502-fc8dae2adf1e?sp=r\&sv=2018-11-09\&sr=b\&spr=https\&se=2026-04-27T19%3A06%3A14Z\&rscd=attachment%3B+filename%3Dopenssl-1.1.1w.tar.gz\&rsct=application%2Foctet-stream\&skoid=96c2d410-5711-43a1-aedd-ab1947aa7ab0\&sktid=398a6654-997b-47e9-b12b-9515b896b4de\&skt=2026-04-27T18%3A05%3A52Z\&ske=2026-04-27T19%3A06%3A14Z\&sks=b\&skv=2018-11-09\&sig=m0FjGy3SWRlcCFS3YrOprdrMS5%2FKkF0Flu6L%2B2IBVKo%3D\&jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmVsZWFzZS1hc3NldHMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwia2V5Ijoia2V5MSIsImV4cCI6MTc3NzMxNDgwNiwibmJmIjoxNzc3MzE0NTA2LCJwYXRoIjoicmVsZWFzZWFzc2V0cHJvZHVjdGlvbi5ibG9iLmNvcmUud2luZG93cy5uZXQifQ.sr4HvQY7UU8j5qql-OsbTQoJq7qcu15jFXenP7S3s_8\&response-content-disposition=attachment%3B filename%3Dopenssl-1.1.1w.tar.gz\&response-content-type=application%2Foctet-stream

wget https://mirrors.aliyun.com/python-release/source/Python-3.13.13.tgz

wget https://www.sqlite.org/2016/sqlite-autoconf-3150200.tar.gz

echo "资源下载完毕,打包命令:tar -zcvf offline_py313.tar.gz /data/offline_py313"

##########python的安装###############-----------------------------------------------------------

#!/bin/bash

set -e

统一目录定义

cd /data/offline_py313/

cd /data/disk1/

BASE_DIR=(cd "(dirname "$0")";pwd)

RPM_DIR="${BASE_DIR}/rpm"

SRC_DIR="${BASE_DIR}/src"

命令行设置变量 不能有空格

root@WZ-20230818MFPD Python-3.13.13# SSL_PREFIX="/usr/local/openssl"

root@WZ-20230818MFPD Python-3.13.13# echo "${SSL_PREFIX}"

/usr/local/openssl

固定安装路径

GCC_PREFIX="/usr/local/gcc11"

SSL_PREFIX="/usr/local/openssl11"

PY_PREFIX="/data/disk1/python3"

########################################

1. 离线安装系统依赖RPM

########################################

echo -e "\033[32m===== 安装系统依赖RPM =====\033[0m"

cd "${RPM_DIR}"

rpm -ivh *.rpm --nodeps --force

rpm -ivh rpm/perl-IPC-Cmd-0.80-4.el7.noarch.rpm --nodeps --force

########################################

2. 编译安装 GCC 11.2

########################################

echo -e "\033[32m===== 编译安装 GCC11 =====\033[0m"

cd "${SRC_DIR}"

rm -rf gcc-11.2

tar -zxf gcc-11.2.0.tar.gz

cd gcc-11.2.0

./contrib/download_prerequisites

mkdir -p build && cd build

../configure \

--prefix="${GCC_PREFIX}" \

--enable-checking=release \

--enable-languages=c,c++

make -j$(nproc)

make install

写入环境变量

cat >> /etc/profile.d/custom_env.sh <<EOF

export PATH={GCC_PREFIX}/bin:\\PATH

export LD_LIBRARY_PATH={GCC_PREFIX}/lib64:\\LD_LIBRARY_PATH

EOF

source /etc/profile.d/custom_env.sh

ln -sf ${GCC_PREFIX}/bin/gcc /usr/bin/gcc

ln -sf ${GCC_PREFIX}/bin/g++ /usr/bin/g++

scl enable devtoolset-11 bash # 临时切换到 gcc-11

永久

echo "source /opt/rh/devtoolset-11/enable" | sudo tee -a /etc/profile

source /etc/profile

gcc --version

########################################

3. 编译安装 OpenSSL 1.1.1w

######################################## /data/offline_py313/src

echo -e "\033[32m===== 编译安装 OpenSSL1.1.1 =====\033[0m"

cd "${SRC_DIR}"

rm -rf openssl-1.1.1w

tar -zxf openssl-1.1.1w.tar.gz

cd openssl-1.1.1w

./config --prefix="${SSL_PREFIX}" shared zlib

./config --prefix="/usr/local/openssl" shared zlib # 绝对路径(正确)

make -j$(nproc)

make install

cat >> /etc/profile.d/custom_env.sh <<EOF

export PATH="{SSL_PREFIX}"/bin:\\PATH

export LD_LIBRARY_PATH="{SSL_PREFIX}"/lib64:\\LD_LIBRARY_PATH

EOF

source /etc/profile.d/custom_env.sh

ln -sf "${SSL_PREFIX}"/bin/openssl /usr/bin/openssl

/usr/bin/openssl version

cat >> /etc/profile.d/custom_env.sh <<EOF

export PATH=/usr/local/openssl/bin:\$PATH

export LD_LIBRARY_PATH=/usr/local/openssl/lib64:\$LD_LIBRARY_PATH

EOF

source /etc/profile.d/custom_env.sh

ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl

########################################

4.1. 编译安装 sqlite 15

安装目录:/data/disk1/python3

########################################

tar xvf sqlite-autoconf-3150200.tar.gz

cd sqlite-autoconf-3150200

./configure --prefix=/usr/local # 指定安装路径

make

sudo make install

/usr/local/bin/sqlite3 --version # 检查版本

sqlite3 --version # 检查版本

########################################

4. 编译安装 Python3.13.13

安装目录:/data/disk1/python3

########################################

echo -e "\033[32m===== 编译安装 Python3.13.13 =====\033[0m"

echo -e "\033[32m===== 确认依赖环境信息,可能会被删=====\033[0m"

/usr/bin/openssl version # 确认ssl 版本为1.1.1w

gcc --version # 确认gcc 版本为11

/usr/local/bin/sqlite3 --version # 确认sqlite3 版本为3.44>3.7

cd "${SRC_DIR}"

rm -rf Python-3.13.13

tar -zxf Python-3.13.13.tgz

cd Python-3.13.13 # make clean #清理编译

cp /data/offline_py313/src/resource.cpython-313-x86_64-linux-gnu.so /data/offline_py313/src/Python-3.13.13/Modules/resource.cpython-313-x86_64-linux-gnu.so

预先创建安装目录 /data/disk1/python3/bin/python3.13

mkdir -p "${PY_PREFIX}"

./configure \

--prefix="${PY_PREFIX}" \

--with-openssl="${SSL_PREFIX}" \

--enable-loadable-sqlite-extensions \

--with-system-ffi \

--enable-shared \

--enable-optimizations \

LDFLAGS="-L/usr/local/lib -Wl,-rpath=/usr/local/lib" \

CPPFLAGS="-I/usr/local/include"

LDFLAGS CPPFLAGS 用于指定sqlite

make -j$(nproc) # make -j1

make altinstall

grep -i sqlite config.log # 查询sqlite相关日志(报错信息)Python-3.13.13/config.log

/data/disk1/python3/bin/python3.13 -c "import sqlite3; print(sqlite3.sqlite_version)" # 输出3.44

/data/disk1/python3/bin/python3.13 -c "import ssl; print(ssl.OPENSSL_VERSION)" # 输出1.1.1

/data/disk1/python3/bin/python3.13 -c "import requests; print(requests.OPENSSL_VERSION)" # 输出1.1.1

/data/disk1/python33/bin/python3.13 -c "import ssl; print(ssl.OPENSSL_VERSION)" # 输出1.1.1

########################################

5. 软链接 & 环境变量

########################################

echo -e "\033[32m===== 配置Python环境变量 =====\033[0m"

cat >> /etc/profile.d/custom_env.sh <<EOF

export PATH={PY_PREFIX}/bin:\\PATH

EOF

source /etc/profile.d/custom_env.sh

固定执行路径

主程序:/data/disk1/python3/bin/python3.13

ln -sf {PY_PREFIX}/bin/python3.13 {PY_PREFIX}/bin/python

ln -sf {PY_PREFIX}/bin/pip3.13 {PY_PREFIX}/bin/pip

########################################

6. 全套验证

########################################

echo -e "\033[32m===== 安装完成 环境验证 =====\033[0m"

gcc -v | head -n2

openssl version

echo "Python 路径:$(which python)"

python -c "

import sqlite3, ssl

print('✅ sqlite3 正常, 版本:', sqlite3.sqlite_version)

print('✅ ssl 模块正常')

print('✅ Python 安装目录:', file)

"

#ssl sqlite 的依赖库的复制(******整套的核心) ##########################################

PY_PREFIX="/data/disk1/python3"

mkdir -p "${PY_PREFIX}/lib"

cd "${PY_PREFIX}/lib"

2. 复制 OpenSSL 和 SQLite 库

cp /usr/local/openssl/lib/libssl.so.1.1 "${PY_PREFIX}/lib/"

cp /usr/local/openssl/lib/libcrypto.so.1.1 "${PY_PREFIX}/lib/"

cp /usr/local/lib/libsqlite3.so.0.8.6 "${PY_PREFIX}/lib/"

ln -sf "libssl.so.1.1" "libssl.so"

ln -sf "libcrypto.so.1.1" "libcrypto.so"

ln -sf "libsqlite3.so.0.8.6" "libsqlite3.so"

ln -sf "libsqlite3.so.0.8.6" "libsqlite3.so.0"

export LD_LIBRARY_PATH="{PY_PREFIX}/lib:{LD_LIBRARY_PATH}"

python的依赖包的下载

/data/disk1/python3/bin/python -m pip install pysqlite3-binary -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

/data/disk1/python3/bin/python -m pip install kafka-python -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

/data/disk1/python3/bin/python -m pip install Flask -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

/data/disk1/python3/bin/python -m pip install numpy -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

/data/disk1/python3/bin/python -m pip install pandas -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

/data/disk1/python3/bin/python -m pip install pycryptodome -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

/data/disk1/python3/bin/python -m pip install pyecharts -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

/data/disk1/python3/bin/python -m pip install python-dateutil -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

/data/disk1/python3/bin/python -m pip install requests -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

/data/disk1/python3/bin/python -m pip install Cython -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

/data/disk1/python3/bin/python -m pip install SQLAlchemy -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

/data/disk1/python3/bin/python -m pip install utils -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

/data/disk1/python3/bin/python -m pip install Werkzeug -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

/data/disk1/python3/bin/python -m pip install mysql-connector-python -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

/data/disk1/python3/bin/python -m pip install apscheduler -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

/data/disk1/python3/bin/python -m pip install pigar -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

/data/disk1/python3/bin/python -m pip install pipreqs -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

/data/disk1/python3/bin/python -m pip list --format=freeze > requirements.txt # 生成依赖文件

python的依赖包的 下载离线版本

/data/disk1/python3/bin/python -m pip download \

-r requirements.txt \

-d ./ \

--no-binary=:all: \

--extra-index-url https://mirrors.aliyun.com/pypi/simple \

--timeout 60 \

--retries 5

python 打包

cd /data/disk1

tar -zcvf python3.tar.gz python3 #打包压缩 149M/512M;解压后未生成同名嵌套文件夹

cp python3.tar.gz /mnt/c/Users/data/

python 部署

cd /data/disk1ll

tar -xvf python3.tar.gz

/data/disk1/python3/bin/python --version

/data/disk1/python3/bin/python -c "import sqlite3;import ssl;import sys; print(sys.version,'\r\n',sqlite3.sqlite_version,'\r\n',ssl.OPENSSL_VERSION)"

tar -zcvf offline_py313.tar.gz offline_py313 #打包压缩 离线版原始全套(备用 意义不大)

cp offline_py313.tar.gz /mnt/c/Users/data/

相关推荐
花酒锄作田6 分钟前
[python]argparse 包在聊天机器人中的应用
python
NiceCloud喜云2 小时前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
AI玫瑰助手3 小时前
Python函数:默认参数的定义与注意事项
开发语言·python·信息可视化
weixin_468466853 小时前
全局与局部注意力机制新手实战指南
人工智能·python·深度学习·算法·自然语言处理·transformer·注意力机制
小糖学代码3 小时前
LLM系列:环境搭建:5.Python-dotenv 环境变量管理
人工智能·python·深度学习·神经网络
智慧物业老杨4 小时前
智慧物业合同周期管理系统:从风险预警到智能交接的全流程数智化落地方案
java·人工智能·python
橙橙笔记4 小时前
Python的学习第一部分
python·学习
voidmort5 小时前
3. 微调(Fine-tuning)与强化学习(RL)的核心思想
python·深度学习·算法
biter down5 小时前
基于 Pywinauto 的 QQ 音乐 GUI 自动化测试实践
python
人道领域5 小时前
【LeetCode刷题日记】669.修剪二叉搜索树
开发语言·python·算法