Mac下Pyenv的安装和使用
前言
开发python项目的时候经常会遇到版本冲突问题。例如有时候需要用到python3.5,有时候又需要用到3.7。像node使用nvm一样,python也有类似的版本管理工具—pyenv。两个工具的功能基本一样。使用版本管理工具,可以方便的来回切换不同的版本以满足开发需求。而且简单易用。
下载与安装
下载的方式其实有很多。我使用的方式是最简单的。系统版本macOS Catalina,稍低一点的版本也OK。 使用Homebrew 安装
brew update
brew install pyenv
下载安装完毕之后检查一下是否安装成功
pyenv --version
出现版本号即代表成功
查看现有的Python版本以及正在使用的Python版本
pyenv versions
会出现
* system
说明目前全局使用的是系统默认的版本(通常为2.7)
安转其他Python版本
pyenv install 3.6.3
列出可用的版本
pyenv install -l
安装完之后查安装后的版本
pyenv versions
会出现
* system
3.6.7
添加路径到终端配置文件
我使用的是zsh,如果是bash也一样 Zsh
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc
Bash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
重新启动shell来使用pyenv
exec "$SHELL"
使用
切换版本
这里pyenv有三个变量供你切换的时候选择
global: 设置全局的 Python 版本(系统)
local: 设置 Python 本地版本(项目)
shell: 设置面向 shell 的 Python 版本(终端)
python 优先级: shell > local > global
例如切换全局python版本为3.6.3
pyenv global 3.6.3
例如切换本地python版本为3.7.1
pyenv local 3.7.1
建议配合pipenv使用
- 根据项目要求,确定python使用版本,通常项目目录下的pipfile文件会列出python版本需求
- 在项目目录下,使用pyenv切换到需求版本
- 使用pipenv install安装需求的包即可