已复制
全屏展示
复制代码

Python多版本管理工具pyenv


· 3 min read

一. 安装 pyenv

pyenv 可以在不影响系统的 python 的情况下,安装并管理多版本的Python,它不依赖原有系统的任何 Python 设置, github 地址 https://github.com/pyenv/pyenv

  • 使用脚本自动安装,安装目录会在 $HOME/.pyenv 下,可以关注下安装过程中的输出日志。
$ curl https://pyenv.run | bash
......
$ echo $?
0
  • ~/.bash_profile,安装后把 pyenv 添加环境变量、激活 pyenv-virtualenv
# pyenv settings
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv rehash

然后退出当前 session 重新进入 shell ,pyenv 就安装成功了。

二. 安装指定版本的 Python

它会下载源码编译安装指定的 Python 版本

$ pyenv install -v 3.11.4
......
......

$ pyenv versions
* system (set by /Users/yzy/.pyenv/version)
  3.11.4

$ ll ~/.pyenv/versions/
total 0
drwxr-xr-x  6 yzy  staff  192 Jul 14 15:23 3.11.4

安装需要的 Python 版本,-v 显示详细过程。如果下载慢的话,可手动下载到~/.pyenv/cache目录,然后再次执行安装命令。

三. pyenv 常用命令

pyenv 把自己安装的 Python 和系统的 Python 完全分开来,不管你的系统之前有多少个 Python ,统统都叫 system 版本。

pyenv root                 # 查看 pyenv 家目录

pyenv doctor               # 检查 pyenv 的安装、以及安装Python的工具
pyenv install --list       # 列出可安装版本
pyenv install 3.6.8        # 安装对应版本
pyenv install -v 3.6.8     # 安装对应版本,显示详细信息

pyenv version              # 显示当前使用的 python 版本
pyenv versions             # 显示已安装的所有版本
pyenv which python         # 显示当前 python 安装路径

pyenv global 3.6.8         # 设置默认全局 Python 版本
pyenv local 3.6.8          # 在当前目录下创建一个.python-version, 以后进入这个目录自动切换为该版本
pyenv shell 3.6.8          # 当前 shell 会话中启用,相当于设置的环境变量PYENV_VERSION=3.6.8,优先级高于global 及 local

pyenv rehash               # 安装新版本后运行此命令更新

四. pyenv 使用 virtualenv 虚拟环境

现在就不用再安装 virtualenv、virtualenvwrapper 来管理虚拟环境了,直接使用 pyenv 提供的 pyenv-virtualenv 插件直接管理,看下面的示例

pyenv virtualenv env       # 根据当前的 Python 版本创建虚拟环境 env
pyenv virtualenv 3.6.8 env # 创建指定 Python 版本的虚拟环境 env
pyenv virtualenvs          # 查看已经创建的所有虚拟环境

# 进入指定的虚拟环境,每个虚拟环境都是使用指定的 Python 版本的
# 进入虚拟环境后,在设置完虚拟环境后设置 global 版本是无效的
pyenv activate env

# 查看是否进入指定的环境
pyenv version 
pip -V

# 退出当前的虚拟环境
pyenv deactivate

# 删除指定的 虚拟环境
pyenv virtualenv-delete env

# 进入项目目录,如果提示文件不存在,按照提示把项目目录添加到提示的目录即可
cdproject 
No project set in /Users/yzy/.pyenv/versions/3.11.4/envs/privategpt/.project
🔗

文章推荐