多版本Python环境管理方式

Written by

in

文章目录
  • Pyenv 是一个强大的 Python 版本管理工具,允许你: 在同一台机器上安装多个 Python 版本 轻松切换全局或项目级的 Python 版本 管理虚拟环境(通过 pyenv-virtualenv 插件) 解决不同项目对 Python 版本的依赖问题
  • 项目规范: 每个项目使用独立的虚拟环境 在项目根目录创建 .python-version 文件 在 README 中注明 Python 版本要求 版本选择: 新项目使用受支持的稳定版本(如 3.8+) 旧项目保持原有版本不变 依赖管理: # 在激活虚拟环境后 pip install pip-tools pip-compile requirements.in > requirements.txt pip-sync CI/CD 集成: # .gitlab-ci.yml 示例 before_script: – pyenv install 3.8.12 – pyenv global 3.8.12 – python -m venv venv – source venv/bin/activate – pip install -r requirements.txt 多版本测试: # 测试脚本示例 for version in 3.7.10 3.8.12 3.9.7; do pyenv local $version python -m pytest tests/ done 通过本指南,你应该能够: 安装并配置 pyenv 管理多个 Python 版本 创建和使用虚拟环境 为不同项目设置专用 Python 环境 解决常见问题 建议定期运行 pyenv update 保持工具最新,并关注 pyenv GitHub 获取最新动态。
  • 以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。 您可能感兴趣的文章: pyenv虚拟环境管理python多版本和软件库的方法 Python多版本开发环境管理工具介绍 python常见环境管理工具超全解析 Python虚拟环境管理工具Conda的使用指南 Python-UV多环境管理的方法
  • 目录
    • Pyenv 是什么?
    • 安装 Pyenv
      • 1. 安装依赖
      • 2. 安装 Pyenv
      • 3. 配置 Shell
      • 4. 验证安装
    • 管理 Python 版本
      • 1. 查看可安装版本
      • 2. 安装 Python 版本
      • 3. 查看已安装版本
      • 4. 设置全局版本
      • 5. 设置临时版本(仅当前会话)
    • 虚拟环境管理
      • 1. 创建虚拟环境
      • 2. 激活/停用环境
      • 3. 查看所有环境
      • 4. 删除环境
      • 5. 自动激活环境(项目级)
    • 项目级 Python 版本控制
      • 1. 设置项目专用版本
      • 2. 验证版本
      • 3. 结合虚拟环境使用
    • 高级技巧
      • 1. 加速安装(使用镜像)
      • 2. 自定义编译选项
      • 3. 卸载 Python 版本
      • 4. 更新 Pyenv
    • 常见问题解决
      • 1. 安装时出现 “C compiler cannot create executables”
      • 2. 虚拟环境激活后提示符不显示环境名
      • 3. 安装过程中出现 SSL 错误
      • 4. Python 版本切换无效
    • 最佳实践
      • 总结

        Pyenv 是一个强大的 Python 版本管理工具,允许你:

        • 在同一台机器上安装多个 Python 版本
        • 轻松切换全局或项目级的 Python 版本
        • 管理虚拟环境(通过 pyenv-virtualenv 插件)
        • 解决不同项目对 Python 版本的依赖问题

        # Ubuntu/Debian
        sudo apt update
        sudo apt install -y make build-essential libssl-dev zlib1g-dev 
        libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm 
        libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
        
        # CentOS/RHEL
        sudo yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite 
        sqlite-devel openssl-devel xz xz-devel libffi-devel
        

        curl https://pyenv.run | bash
        

        将以下内容添加到 ~/.bashrc~/.zshrc

        export PATH="$HOME/.pyenv/bin:$PATH"
        eval "$(pyenv init --path)"
        eval "$(pyenv virtualenv-init -)"
        

        应用配置:

        exec "$SHELL"  # 或 source ~/.bashrc / source ~/.zshrc
        

        pyenv --version
        # 应输出类似: pyenv 2.3.0
        

        pyenv install --list
        

        # 安装指定版本
        pyenv install 3.8.12
        pyenv install 3.9.7
        
        # 安装最新版本
        pyenv install 3.10:latest
        

        pyenv versions
        # 输出示例:
        #   system
        # * 3.8.12 (set by /home/user/.pyenv/version)
        #   3.9.7
        

        pyenv global 3.9.7
        

        pyenv shell 3.8.12
        

        # 基于当前 Python 版本创建
        pyenv virtualenv myenv
        
        # 基于指定 Python 版本创建
        pyenv virtualenv 3.8.12 myproject-env
        

        # 激活
        pyenv activate myproject-env
        
        # 停用
        pyenv deactivate
        

        pyenv virtualenvs
        

        pyenv virtualenv-delete myproject-env
        

        cd myproject
        pyenv local myproject-env  # 创建 .python-version 文件
        

        cd myproject
        pyenv local 3.8.12  # 创建 .python-version 文件
        

        python --version
        # 应输出: Python 3.8.12
        

        cd myproject
        pyenv virtualenv 3.8.12 myproject-env
        pyenv local myproject-env
        

        # 设置国内镜像(适用于中国用户)
        export PYTHON_BUILD_MIRROR_URL="https://npm.taobao.org/mirrors/python/"
        pyenv install 3.8.12
        

        env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.9.7
        

        pyenv uninstall 3.7.10
        

        pyenv update
        

        # 确保已安装所有依赖
        sudo apt install build-essential  # Ubuntu/Debian
        sudo yum groupinstall "Development Tools"  # CentOS/RHEL
        

        # 确保在 shell 配置中正确设置了 virtualenv-init
        eval "$(pyenv virtualenv-init -)"
        

        # 尝试使用 --patch 选项
        pyenv install --patch 3.8.12 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch?full_index=1)
        

        # 检查 shell 配置是否正确加载
        echo $PATH | grep pyenv
        # 应包含 pyenv 路径
        
        # 检查当前目录是否有 .python-version 文件
        

        项目规范

        • 每个项目使用独立的虚拟环境
        • 在项目根目录创建 .python-version 文件
        • 在 README 中注明 Python 版本要求

        版本选择

        • 新项目使用受支持的稳定版本(如 3.8+)
        • 旧项目保持原有版本不变

        依赖管理

        # 在激活虚拟环境后
        pip install pip-tools
        pip-compile requirements.in > requirements.txt
        pip-sync
        

        CI/CD 集成

        # .gitlab-ci.yml 示例
        before_script:
          - pyenv install 3.8.12
          - pyenv global 3.8.12
          - python -m venv venv
          - source venv/bin/activate
          - pip install -r requirements.txt
        

        多版本测试

        # 测试脚本示例
        for version in 3.7.10 3.8.12 3.9.7; do
          pyenv local $version
          python -m pytest tests/
        done
        

        通过本指南,你应该能够:

        • 安装并配置 pyenv
        • 管理多个 Python 版本
        • 创建和使用虚拟环境
        • 为不同项目设置专用 Python 环境
        • 解决常见问题

        建议定期运行 pyenv update 保持工具最新,并关注 pyenv GitHub 获取最新动态。

        以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。

        您可能感兴趣的文章:

        • pyenv虚拟环境管理python多版本和软件库的方法
        • Python多版本开发环境管理工具介绍
        • python常见环境管理工具超全解析
        • Python虚拟环境管理工具Conda的使用指南
        • Python-UV多环境管理的方法

        站内搜索