Files
douyin/scripts/install_python311.sh
T
2026-07-17 09:24:47 +08:00

66 lines
1.9 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# 在无宝塔 pyenv 的 CentOS 上编译安装 Python 3.11(需 root
# 用法: chmod +x scripts/install_python311.sh && ./scripts/install_python311.sh
set -euo pipefail
PYVER="3.11.9"
PY_SHORT="3.11"
PREFIX="/usr/local/python${PY_SHORT}"
PY_BIN="${PREFIX}/bin/python${PY_SHORT}"
SRC="/usr/src/Python-${PYVER}"
if [ "$(id -u)" -ne 0 ]; then
echo "[错误] 请用 root 运行"
exit 1
fi
if [ -x "$PY_BIN" ]; then
echo "[OK] 已存在 $PY_BIN"
"$PY_BIN" -c "import sys,ssl; print(sys.version); print(ssl.OPENSSL_VERSION)"
echo
echo "安装项目依赖:"
echo " cd /home/www/wwwroot/douyin"
echo " KEFU_PYTHON=$PY_BIN ./install.sh"
exit 0
fi
echo "========================================"
echo " 编译安装 Python ${PYVER}"
echo " 安装路径: ${PREFIX}"
echo "========================================"
if command -v yum &>/dev/null; then
yum groupinstall -y "Development Tools" || yum install -y gcc make
yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel \
readline-devel sqlite-devel xz-devel wget tar
elif command -v apt-get &>/dev/null; then
apt-get update
apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev libffi-dev wget tar
else
echo "[错误] 不支持的系统,请手动安装编译依赖"
exit 1
fi
mkdir -p /usr/src
cd /usr/src
if [ ! -f "Python-${PYVER}.tgz" ]; then
wget -q "https://www.python.org/ftp/python/${PYVER}/Python-${PYVER}.tgz"
fi
rm -rf "$SRC"
tar xzf "Python-${PYVER}.tgz"
cd "$SRC"
./configure --prefix="$PREFIX" --enable-optimizations --with-openssl=/usr
make -j"$(nproc 2>/dev/null || echo 2)"
make altinstall
echo
echo "[OK] 安装完成"
"$PY_BIN" -c "import sys,ssl; print(sys.version); print('OpenSSL:', ssl.OPENSSL_VERSION)"
echo
echo "下一步:"
echo " cd /home/www/wwwroot/douyin"
echo " rm -rf backend/.venv"
echo " KEFU_PYTHON=$PY_BIN ./install.sh"