pyenv 可在不同 python 版本之间轻松切换,实现 python 环境隔离,且支持自动激活和退出虚拟环境
Mac 下安装了 homebrew 之后使用 homebrew 安装 pyenv。(安装 homebrew,已安装请忽略)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install pyenv
遇到的问题:brew 下载 pyenv 时,不成功,发现最后报错:
原来是一个依赖包下载不成功(readline)
解决
用 brew 单独下载依赖包,就避免了找不到依赖版本的错误
brew install readline
根据自身环境,将下方添加环境变量到~/.zshrc 或者 ~/.bash_profile 中添加三行来开启自动补全。
export PYENV_ROOT=/usr/local/var/pyenv
export PATH="$PYENV_ROOT/bin:$PATH"
export PATH="$PYENV_ROOT/shims:$PATH"
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
pyenv
3.使用
# 1. 查看正在使用的python版本
$ pyenv version
system (set by /usr/local/var/pyenv/version)
# 2. 查看系统支持的python版本
$ pyenv versions
* system (set by /usr/local/var/pyenv/version)
3.6.0
## * 表示正在使用的python版本, system 表示系统自带的python
# 3. 查看可以安装的python有哪些
pyenv install -l
Available versions:
2.1.3
2.2.3
2.3.7
2.4
2.4.1
2.4.2
2.4.3
2.4.4
* * *
# 4. 安装指定版本的pyton
pyenv install 3.6.0
# 5. pyenv local 设置当前目录使用的python版本
$ mkdir py3 && cd py3 && pyenv local 3.6.0
# 验证:
# MacBookPro in /tmp/py3
$ python -V
Python 3.6.0
# MacBookPro in /tmp/py3
$ cd
$ python -V
Python 2.7.10
# 6. Python版本管理
pyenv global <version> # 全局设置python版本为指定版本,设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。
pyenv local <version> # 设置当前路径下python版本为指定版本,设置 Python 本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。
pyenv shell <version> # 设置当前shell窗口使用的python版本为指定版本,设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。–unset 参数可以用于取消当前 shell 设定的版本。
使用pyenv切换Python 版本之后可以通过which python或者是python --version来查看是否生效。
# 7.Python版本的优先级
shell > local > global
pyenv会从当前目录开始向上逐级查找.python-versiob文件,直到根目录为止,若找不到,则使用global版本。
# 8.Python卸载
pyenv isntall <version> # 安装版本号为<version>的Python
pyenv uninstall <version> #卸载版本号为<version>的Python
pyenv 能做什么
1. 基于每个用户更改全局Python版本
2. 对每个项目的Python版本提供支持
3. 允许通过环境变量覆盖Python版本
4. 一次搜索多个版本的Python