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

Ubuntu22.04下pyenv与apt安装Python的冲突及构建报错求助

问题解答

1. pyenv与apt安装的Python是否会冲突?

默认不会冲突。pyenv通过修改shell的PATH环境变量,让自身管理的Python版本优先级高于系统apt安装的版本,系统Python仍保留在原路径(比如/usr/bin/python3)。只要正确完成pyenv初始化(将eval "$(pyenv init -)"添加到~/.bashrc或~/.zshrc并重启shell),就能通过pyenv local/shell/global自由切换版本,不会干扰系统Python的正常使用。

如果出现版本混淆,大概率是pyenv初始化不完整,或是手动修改PATH导致优先级错乱。

2. 如何解决"setup.py" install is deprecated报错?

这个报错并非pyenv未正确安装Python,而是当前激活环境的pip/setuptools版本太新,与Python3.7.5不兼容。Python3.7属于旧版本,而pip22.0.2、setuptools59.6.0已经废弃了setup.py install的旧方式,解决方案如下:

  • 先确保激活pyenv的3.7.5版本:
    pyenv local 3.7.5  # 仅当前目录生效
    # 或
    pyenv shell 3.7.5  # 仅当前shell会话生效
    
  • 降级pip到Python3.7兼容的最高版本(pip20.3.4是支持Python3.7的最后一个版本):
    pip install --upgrade pip==20.3.4
    
  • 降级setuptools到兼容版本:
    pip install --upgrade setuptools==44.1.1
    
  • 后续安装依赖时,尽量用pip的标准命令替代python setup.py install,比如:
    pip install .  # 替代python setup.py install,安装当前目录的包
    

3. Ubuntu 22.04 LTS上管理多Python版本的方法

  • pyenv:轻量且灵活的工具,支持安装几乎所有Python版本,切换方便,完全不干扰系统环境,是最推荐的方案之一。
  • venv/virtualenv:用于创建项目独立虚拟环境,隔离依赖。venv是Python3.3+自带的,无需额外安装;virtualenv功能更丰富,支持旧版Python,可结合系统Python或pyenv的版本使用。
  • conda/miniconda:适合数据科学场景,自带包管理系统,能同时管理Python和非Python依赖,可快速创建不同Python版本的隔离环境。
  • 系统apt+update-alternatives:Ubuntu22.04的软件源中包含Python3.8、3.9、3.10,可直接用sudo apt install python3.8等安装,再通过update-alternatives管理默认Python版本:
    # 添加版本到备选列表
    sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
    sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2
    # 切换默认版本
    sudo update-alternatives --config python3
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 17:48:15