Python多版本管理工具pyenv
一. 安装 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