需创建指向真实Python3路径的软链接,如sudo ln -sf /usr/bin/python3.9 /usr/bin/python3,并安装python3-distutils或python3-setuptools等依赖,再检查bt.service中ExecStart路径是否统一为/usr/bin/python3。

宝塔面板安装时提示 Python 3 not found 怎么办
根本原因不是没装 Python 3,而是宝塔启动脚本硬编码找 /usr/bin/python3,但很多系统(比如 CentOS 8/9、Ubuntu 22.04+)默认装在 /usr/bin/python3.9 或 /usr/bin/python3.11,且没建软链接。
实操建议:
- 先确认真实路径:
which python3或ls /usr/bin/python3* - 如果输出是
/usr/bin/python3.9,就建个指向它的软链接:sudo ln -sf /usr/bin/python3.9 /usr/bin/python3 - 别用
alias或改环境变量——宝塔的 systemd 服务不读 shell 配置 - 建完立刻验证:
/usr/bin/python3 --version能正常输出才算成功
为什么 ln -s 不能用绝对路径写错
常见翻车点:有人执行 ln -s python3.9 /usr/bin/python3,结果生成了个指向当前目录下 python3.9 的坏链接,因为没加 -f 且路径写相对了。
必须用绝对路径 + 强制覆盖:
立即学习“Python免费学习笔记(深入)”;
-
ln -sf中的-f很关键,否则已存在/usr/bin/python3时命令直接报错退出 - 源路径必须是绝对路径,
/usr/bin/python3.9不能简写成python3.9 - 目标路径也得是绝对路径,
/usr/bin/python3不能漏掉/usr/bin/ - 建完用
ls -l /usr/bin/python3看一眼箭头指向是否正确
Ubuntu 22.04+ 和 Rocky 9 上的额外注意点
这些系统默认禁用 python3 软链接,且宝塔 7.9.x 及之前版本没适配,光建链接还不够。
需要同步检查:
- 确认
python3-distutils包已安装(Ubuntu):sudo apt install python3-distutils - Rocky/AlmaLinux 需补
python3-setuptools:sudo dnf install python3-setuptools - 宝塔安装脚本有时会跳过依赖检测,建议装完再跑一次:
sudo bt 1看是否还报 Python 错误 - 如果用的是宝塔国际版或非官方源,可能自带错误的 Python 查找逻辑,优先换回官网脚本
修复后仍启动失败?检查 systemd 服务文件里的解释器路径
极少数情况,宝塔的 bt.service 文件里写了死路径,比如 ExecStart=/usr/bin/python3 /www/server/panel/pyenv/bin/uwsgi,而你刚建的软链接只解决了主进程,子进程可能仍崩。
临时诊断方法:
- 查服务实际调用:
sudo systemctl cat bt,看ExecStart行 - 如果里面明确写了
/usr/bin/python3.9,说明脚本被手动改过,应统一改成/usr/bin/python3 - 改完重载:
sudo systemctl daemon-reload && sudo systemctl restart bt - 日志看真因:
sudo journalctl -u bt -n 50 --no-pager,重点扫exec format error或No module named
软链接只是表层修复,真正要稳,得让所有 Python 调用路径都收口到 /usr/bin/python3 这一个入口。路径散在多个配置里时,逐个揪出来比猜更省时间。

















