解决方案:安装 Python 3.8 并修复宝塔面板

    当前系统只有 Python 2.7.5,没有 Python 3,而宝塔面板的 tools.py 中使用了 Python 3.6+ 才支持的 f-string 语法,因此报错。需要为系统安装 Python 3.6 或更高版本,并让宝塔面板使用它。

    解决方案:安装 Python 3.8 并修复宝塔面板

    步骤 1:安装编译依赖及 Python 3.8

    # 安装依赖
    yum install -y gcc openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel
    
    # 下载 Python 3.8.18
    cd /usr/local/src
    wget https://www.python.org/ftp/python/3.8.18/Python-3.8.18.tgz
    tar -xzf Python-3.8.18.tgz
    cd Python-3.8.18
    
    # 编译安装(使用 altinstall 避免覆盖系统 python2)
    ./configure --enable-optimizations
    make altinstall
    
    # 验证安装
    python3.8 --version

    步骤 2:创建软链接(方便使用 python3 命令)

    ln -s /usr/local/bin/python3.8 /usr/bin/python3

    步骤 3:修改宝塔面板主程序使用的 Python 解释器

    宝塔面板的核心脚本 /www/server/panel/bt 第一行指定了 Python 路径,将其改为 python3.8

    # 备份原文件
    cp /www/server/panel/bt /www/server/panel/bt.bak
    
    # 修改第一行(从 #!/usr/bin/python 改为 #!/usr/local/bin/python3.8)
    sed -i '1s|#!/usr/bin/python|#!/usr/local/bin/python3.8|' /www/server/panel/bt

    同时检查 tools.py 等其他面板脚本是否也使用错误的 Python 版本:

    # 查找面板目录下所有 .py 文件并修改 shebang(可选,但建议)
    find /www/server/panel -name "*.py" -exec sed -i '1s|#!/usr/bin/python|#!/usr/local/bin/python3.8|' {} \;

    步骤 4:重启宝塔面板服务

    # 停止面板
    bt stop
    # 启动面板
    bt start
    # 或直接重启
    /etc/init.d/bt restart

    步骤 5:测试 bt 命令

    bt