宝塔10周年开年大促,年度钜惠,先领红包再下单,企业版低至941元!查看活动
当前位置:论坛首页 > BUG提交 > Linux面板

提交修复 (稳定版) v10.0.2-LTSpython环境安装bug

发表在 BUG提交2026-3-20 15:08 [复制链接] 0 65

面板版本:宝塔linux面板 [backcolor=rgba(255, 255, 255, 0.7)](稳定版)[backcolor=rgba(255, 255, 255, 0.7)] v10.0.2-LTS

系统版本:centos 7

浏览器版本:Google Chrome 146.0.7680.80

问题现象:安装不了新的python版本


修改位置:/www/server/panel/class/projectModel/btpyvm.py
__parser_xml方法和cmd_install方法
--------------------------------------------
def __parser_xml(self, data_txt: str) -> List[PythonVersion]:    """    修复:改用字符串匹配解析Python版本列表,避免XML解析错误    """    res_list = []    last_2 = {        "data": (2, 0, 0),        "version": None,    }    # 匹配Python版本目录(如 3.12.3/)    version_pattern = re.compile(r'href="(\d+\.\d+\.\d+)/"')    versions = version_pattern.findall(data_txt)        # 处理2.x版本    for ver in versions:        if ver.startswith("2."):            t_version = parse_version_to_list(ver)            if t_version > last_2["data"]:                last_2["data"] = t_version                last_2["version"] = ver        elif ver.startswith("3."):            p_v = PythonVersion(ver)            res_list.append(p_v)    # 添加最新的2.x版本    if last_2["version"]:        res_list.insert(0, PythonVersion(last_2["version"]))    # 排序并过滤不稳定版本    res_list.sort(key=lambda x: x.ver_t)    need_remove = []    for ver in res_list[::-1]:        if not self.test_last_version_is_stable(ver):            need_remove.append(ver)        else:            break    for ver in need_remove:        res_list.remove(ver)    return res_list
--------------------------------------------
def cmd_install(self, version, extended_args='') -> None:    py_v = self._get_version(version)    # 新增:判断py_v是否为有效对象    if isinstance(py_v, str):        print(py_v, file=sys.stderr)        return    if self.base_url is None:        print("网络连接错误", file=sys.stderr)        return    _, err = py_v.install(self.base_url, extended_args)    if err:        print(err, file=sys.stderr)

修复后:可以安装新的python版本






使用道具 举报 只看该作者 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表