当前位置: 首页 > article >正文

Ubuntu22 安装多个版本的python

前言

使用 pyenv 是一个很好的选择,尤其是在需要管理多个 Python 版本时。它提供了一个简单的方法来安装、切换和管理多个版本的 Python,而不必依赖系统的包管理器或 update-alternatives。特别是当你需要在同一系统中频繁切换 Python 版本时,pyenv 会显得更加方便。


目录

  • 前言
      • 为什么使用 `pyenv`
      • 安装 `pyenv`
        • 1. 安装依赖
        • 2. 安装 `pyenv`
        • 3. 配置 shell 环境
        • 4. 安装 Python 版本
        • 5. 切换 Python 版本
        • 6. 使用 `pyenv` 创建虚拟环境
      • 总结

为什么使用 pyenv

  • 独立性:与系统的 Python 环境无关,不会影响系统全局的 Python 安装。
  • 灵活性:可以安装多个不同版本的 Python(包括不同的 Python 2 和 Python 3 版本)。
  • 便捷切换:允许你在项目之间轻松切换 Python 版本。

安装 pyenv

以下是在 Ubuntu 22 上安装 pyenv 的步骤:

1. 安装依赖

首先,你需要安装一些依赖项:

sudo apt update
sudo apt install -y build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev \
liblzma-dev python3-openssl git
2. 安装 pyenv

你可以使用 curl 来安装 pyenv

curl https://pyenv.run | bash

该命令会安装以下内容:

  • pyenv: Python 版本管理工具。
  • pyenv-virtualenv: 用于创建虚拟环境的插件。
  • pyenv-update: 用于更新 pyenv 的工具。
3. 配置 shell 环境

安装完成后,需要将 pyenv 添加到 shell 配置文件(~/.bashrc~/.zshrc 等)中。

~/.bashrc 文件末尾添加以下内容:

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

然后使配置生效:

source ~/.bashrc
4. 安装 Python 版本

安装完成后,你可以使用 pyenv 来安装你需要的 Python 版本。例如:

pyenv install 3.7.9
pyenv install 3.9.1

你可以通过以下命令查看可用的 Python 版本:

pyenv install --list
5. 切换 Python 版本

安装完成后,你可以使用 pyenv 切换 Python 版本。例如:

  • 设置全局 Python 版本:

    pyenv global 3.9.1
    
  • 为某个特定目录设置 Python 版本(此版本仅在该目录下有效):

    pyenv local 3.7.9
    
  • 查看当前使用的 Python 版本:

    pyenv version
    
6. 使用 pyenv 创建虚拟环境

如果你需要为某个项目创建虚拟环境,可以使用 pyenv-virtualenv 插件。首先,使用 pyenv 安装一个版本的 Python,然后使用 pyenv virtualenv 创建虚拟环境:

pyenv virtualenv 3.7.9 myenv
pyenv activate myenv

总结

  • 如果你需要更灵活的 Python 版本管理,pyenv 是一个非常好的选择,特别适合在同一系统中安装多个不同版本的 Python。
  • 使用 pyenv 可以避免干扰系统自带的 Python 环境。
  • pyenv 配合 pyenv-virtualenv 使用,可以有效地管理不同项目中的 Python 环境。

如果你经常需要切换不同版本的 Python 或者在不同项目中使用不同版本,pyenv 会是一个非常方便的工具。如果有任何问题或需要进一步帮助,随时告诉我!


http://www.kler.cn/a/554028.html

相关文章:

  • java面试场景问题
  • 汽车免拆诊断案例 | 2010 款路虎揽胜车空调偶尔出风异常
  • DeepSeek 助力 Vue 开发:打造丝滑的导航栏(Navbar)
  • 23种设计模式 - 享元模式
  • 利用Java爬虫精准获取淘宝分类详情:实战案例指南
  • 使用LlamaIndex查询 MongoDB 数据库,并获取 OSS (对象存储服务) 上的 PDF 文件,最终用Langchain搭建应用
  • 使用GitLab和GitLab-Runner建立CICD流水线
  • 网络安全架构战略 网络安全体系结构
  • LLaMA 3.1 模型在DAMODEL平台的部署与实战:打造智能聊天机器人
  • c++作业
  • 基于Qt/C++实现一个俄罗斯方块游戏(附源码下载链接)
  • Linux 新建用户和组命令全解析
  • 使用Python和OpenCV实现图像像素压缩与解压
  • 升级 SpringBoot3 全项目讲解 — 如何在 SpringBoot3 种用 JsonSchema 来验证 Json是否有效?
  • Jest单元测试
  • 拦截器VS过滤器:Spring Boot中请求处理的艺术!
  • 注意力机制中的QKV形象解释
  • Docker 部署 MySQL 8 详细图文教程
  • Vue 3 工程化打包工具:从理论到实践 (下篇)
  • 机器学习实战(8):降维技术——主成分分析(PCA)