宝塔用户_qqxfzi 发表于 4 天前

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



面板版本:宝塔linux面板 (稳定版) 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:    """    修复:改用字符串匹配解析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版本








页: [1]
查看完整版本: 提交修复 (稳定版) v10.0.2-LTSpython环境安装bug