Ubuntu下安装pyenv管理多版本python

本文介绍如何使用Pyenv工具管理Python的不同版本。首先配置Pyenv环境并安装必要的依赖包,然后详细说明安装特定版本Python的过程及如何设置全局版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装Python版本管理工具——Pyenv

git clone git://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
exec $SHELL -l

通过下面这个命令查看可以安装的python版本:

pyenv install --list

查看好版本后,我选择安装3.6.5,但是安装之前,我们必须要安装python所需要的依赖包,否则会安装失败。

sudo apt-get install libc6-dev gcc
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm

centos7:sudo yum install -y gcc git openssl-devel zlib-devel readline-devel sqlite-devel bzip2-devel patch

上面的依赖包搞定之后,我们就可以安装python了:

pyenv install 3.6.5 -v

该命令会从github上下载python的源代码,并解压到/tmp目录下,然后在/tmp中执行编译工作。若依赖包没有安装,则会出现编译错误,需要在安装依赖包之后重新执行该命令。

安装完成之后,使用如下命令更新数据库:

pyenv rehash

查看当前已安装的python版本:

pyenv versions

* system (set by /home/yourname/.pyenv/version)

3.6.5

返回这两条就对了,*代表是当前系统正在使用的python版本是系统自带的。

设置全局的python版本:

pyenv global 3.6.5
pyenv versions

system

* 3.6.5 (set by /home/yourname/.pyenv/version)

当前的python版本已经变为了3.6.5。也可以使用pyenv localpyenv shell临时改变python的版本。

查看python版本python --version

 注意
  • 输入python即可使用新版的python;
  • 系统自带的脚本会以/usr/bin/python的方式直接调用老版本的python,因而不会对系统脚本产生影响;
  • 使用pip安装第三方模块时会安装到~/.pyenv/versions/3.6.5下,不会和系统模块发生冲突;
  • 使用pip安装模块后,可能需要执行pyenv rehash更新数据库。

转载于:https://www.cnblogs.com/juneman/p/8856428.html

<think>我们使用pyenv管理多个Python版本。pyenv是一个流行的Python版本管理工具,它允许我们在同一台机器上安装多个Python版本,并且可以轻松地切换全局或每个目录的Python版本。具体步骤如下:1.安装依赖(以Ubuntu为例):```bashsudoaptupdatesudoaptinstall-ymakebuild-essentiallibssl-devzlib1g-dev\libbz2-devlibreadline-devlibsqlite3-devwgetcurlllvm\libncurses5-devlibncursesw5-devxz-utilstk-devlibffi-devliblzma-dev```2.安装pyenv:可以使用pyenv-installer脚本安装:```bashcurlhttps://pyenv.run|bash```3.设置环境变量:将以下内容添加到~/.bashrc(或~/.zshrc,如果你使用zsh):```bashexportPATH="$HOME/.pyenv/bin:$PATH"eval"$(pyenvinit--path)"eval"$(pyenvvirtualenv-init-)"```然后运行:```bashsource~/.bashrc```4.安装所需的Python版本(例如3.7.12和3.10.2):```bashpyenvinstall3.7.12pyenvinstall3.10.2```5.查看已安装Python版本:```bashpyenvversions```6.设置全局Python版本:```bashpyenvglobal3.10.2```7.设置目录级Python版本(在项目目录下):```bashpyenvlocal3.7.12```这会在当前目录下创建一个`.python-version`文件,指定该目录下的Python版本。8.使用虚拟环境(可选):pyenv可以和pyenv-virtualenv插件一起使用来创建虚拟环境。```bashpyenvvirtualenv3.10.2myenv#基于Python3.10.2创建名为myenv的虚拟环境pyenvactivatemyenv#激活虚拟环境pyenvdeactivate#退出虚拟环境```9.卸载某个Python版本(可选):```bashpyenvuninstall3.7.12```注意:在安装过程中可能会遇到下载慢的问题,可以考虑设置镜像源,例如:```bashvim~/.pyenv/plugins/python-build/share/python-build/3.7.12#将下载URL改为国内镜像,例如:#https://registry.npmmirror.com/-/binary/python/3.7.12/Python-3.7.12.tar.xz```或者使用环境变量:```bashexportPYTHON_BUILD_MIRROR_URL="https://registry.npmmirror.com/-/binary/python/"```下面是一个示例脚本,用于在Ubuntu安装pyenv并配置两个Python版本:</think> ### 使用 pyenv 管理多版本 Python 的详细步骤 pyenv 是一款强大的 Python 版本管理工具,允许你在同一系统上安装多个 Python 版本并轻松切换。以下是具体操作步骤: #### **1. 安装依赖** ```bash sudo apt update sudo apt install -y make 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 ``` #### **2. 安装 pyenv** ```bash curl https://pyenv.run | bash ``` 安装完成后将以下内容添加到 `~/.bashrc` 文件末尾: ```bash echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init --path)"' >> ~/.bashrc echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc source ~/.bashrc ``` #### **3. 安装 Python 版本** 查看可用版本: ```bash pyenv install --list ``` 安装特定版本 (如 3.8.18 和 3.10.13): ```bash pyenv install 3.8.18 pyenv install 3.10.13 ``` 安装过程可能较慢,如需加速可设置国内镜像: ```bash v=3.10.13; wget https://registry.npmmirror.com/-/binary/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/ pyenv install $v ``` #### **4. 管理 Python 版本** 查看已安装版本: ```bash pyenv versions ``` 设置全局默认版本: ```bash pyenv global 3.10.13 ``` 设置项目专用版本 (在项目目录中执行): ```bash pyenv local 3.8.18 # 这会创建 .python-version 文件 ``` 临时使用特定版本 (仅当前会话有效): ```bash pyenv shell 3.8.18 ``` #### **5. 管理虚拟环境** 创建虚拟环境: ```bash pyenv virtualenv 3.10.13 myproject-env ``` 激活虚拟环境: ```bash pyenv activate myproject-env ``` 退出虚拟环境: ```bash pyenv deactivate ``` 删除虚拟环境: ```bash pyenv virtualenv-delete myproject-env ``` #### **6. 其他实用命令** 卸载特定 Python 版本: ```bash pyenv uninstall 3.7.0 ``` 更新 pyenv: ```bash pyenv update ``` 查看当前使用的 Python 路径: ```bash pyenv which python ``` --- ### **原理说明** 1. **版本隔离**:pyenv 在 `~/.pyenv/versions` 目录存储不同 Python 版本 2. **环境切换**:通过修改 `PATH` 环境变量优先级实现版本切换 3. **shim 机制**:pyenv 拦截所有 Python 相关命令并路由到对应版本 4. **虚拟环境**:使用轻量级的目录隔离而非完整安装副本 --- ### **常见问题解决** #### 安装报错:No module named '_ctypes' ```bash sudo apt install libffi-dev && pyenv install 3.8.18 ``` #### 安装缓慢解决方案 ```bash # 设置阿里云镜像下载缓存 echo 'export PYTHON_BUILD_MIRROR_URL="https://npm.taobao.org/mirrors/python/"' >> ~/.bashrc source ~/.bashrc ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值