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/

相关推荐
Gu Gu Study26 分钟前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)
人工智能·python
卷无止境1 小时前
写代码这件事,到底该讲究点什么?
后端·python
卷无止境1 小时前
循环复杂度到底在算什么,Python 代码怎么才能写得让人一看就懂
后端·python
lpfasd1231 小时前
MediaCrawler 项目深度分析
chrome·python·chrome devtools
Dxy12393102162 小时前
Python项目打包成EXE完整教程(PyInstaller实战避坑)
开发语言·python
bamb002 小时前
一个项目带你入门AI应用开发01
python
0566463 小时前
Python康复训练——常用标准库
开发语言·python·学习
昆曲之源_娄江河畔3 小时前
Python如何安装flask, pymssql
开发语言·python·flask·pymssql
0566463 小时前
Python康复训练——控制流与函数
开发语言·python·学习
天使day4 小时前
FastAPI快速入门
python·fastapi