解决方案:安装 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
