You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Bash命令使用指定版本Python执行CyberPanel升级

CyberPanel升级及Python版本问题解决指南

关键概念说明

  • protobuf:全称Protocol Buffers,是一种轻量高效的数据序列化工具,CyberPanel升级脚本依赖它,而它要求Python版本≥3.7,你的系统默认Python3是3.6.8,这就是报错的核心原因。
  • pyenv:一款Python版本管理工具,能让你在同一台机器上切换不同Python版本,但你之前切换后脚本没生效,是因为脚本默认调用系统原生Python,而非pyenv管理的版本。

让升级脚本使用pyenv的Python版本

方法一:临时指定Python路径(快速解决)

先定位pyenv管理的Python3.11.3的实际路径,再修改升级脚本里的Python调用指向这个路径:

  1. 执行命令获取路径:
    pyenv which python3
    
    输出示例:/home/你的用户名/.pyenv/versions/3.11.3/bin/python3
  2. 下载脚本到本地并修改:
    # 下载升级脚本
    wget https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh -O preUpgrade.sh
    # 替换脚本中的python3为刚才查到的路径,注意替换成你自己的路径
    sed -i 's/python3/\/home\/你的用户名\/.pyenv\/versions\/3.11.3\/bin\/python3/g' preUpgrade.sh
    # 给脚本添加执行权限
    chmod +x preUpgrade.sh
    # 执行脚本
    ./preUpgrade.sh
    

方法二:全局生效pyenv版本(永久解决)

让所有终端会话默认使用pyenv的Python3.11.3:

  1. 编辑shell配置文件(bash用户改~/.bashrc,zsh用户改~/.zshrc),确保文件末尾有以下内容:
    export PATH="$HOME/.pyenv/bin:$PATH"
    eval "$(pyenv init --path)"
    eval "$(pyenv init -)"
    
  2. 重新加载配置文件:
    # bash用户执行
    source ~/.bashrc
    # zsh用户执行
    source ~/.zshrc
    
  3. 设置全局默认Python版本:
    pyenv global 3.11.3
    
  4. 重新打开终端,执行python3 --version确认版本为3.11.3,再运行升级命令即可。

升级后验证

升级完成后重启CyberPanel服务:

systemctl restart lscpd

尝试登录后台,如果仍出现500错误,可查看日志排查:

tail -n 20 /usr/local/lscp/logs/error.log

内容的提问来源于stack exchange,提问作者damanara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 09:41:01