pyenv的安装与使用
pyenv是管理不同版本python解释器的工具,可以轻松地在多个版本的Python之间切换。本文示例使用pyenv安装3.6.0、3.9.0版本解释器。
1、pyenv安装
1.1、电脑系统
操作系统版本为macOS 10.13.2
1.2、使用brew工具安装
打开terminal使用brew install执行安装命令,但会遇到更新Homebrew,这会花费较长时间
brew install pyenv
通过临时设定环境变量,可以在当前shell中执行brew install命令时不自动更新,直接下载并安装软件包
export HOMEBREW_NO_AUTO_UPDATE=true
1.3、源码安装
使用git命令在github中下载项目源码安装。下载后设置环境变量,并激活.bash_profile文件,执行pyenv命令展示相关信息即安装成功
mkdir ~/.pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
ls .pyenv/
echo $HOME
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
ls .pyenv/bin/
source .bash_profile
pyenv
pyenv --version # 获取pyenv版本号
1.4、添加"pyenv init -"到shell
添加"pyenv init -"到.bash_profile文件,启用shims和autocompletion
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\n fi' >> ~/.bash_profile
2、安装python解释器
2.1、在线安装
pyenv安装3.6.0版本解释器的默认下载链接,下载速度缓慢
2.2、离线安装
使用国内源下载解释器到 ~/.pyenv/cache目录下,离线安装解释器
淘宝源:https://npm.taobao.org/mirrors/python/3.6.0/Python-3.6.0.tar.xz
搜狐源:http://mirrors.sohu.com/python/
ls ~/.pyenv/
mkdir ~/.pyenv/cache # cache目录不存在则创建
wget https://npm.taobao.org/mirrors/python/3.6.0/Python-3.6.0.tar.xz -P .pyenv/cache/
pyenv install 3.6.0
以上面两种方式安装3.9.0版本解释器
3、pyenv常用命令
安装解释器:pyenv install 版本号
卸载解释器:pyenv uninstall 版本号
global 全局设置(尽量不要用):pyenv global 版本号
解释:global是作用于全局;root用户不要使用global,可以使用local。
3.1、应用到本地
# 设置当前目录开始向下递归都继承该版本号
pyenv local 版本号
3.2、应用到当前shell
# 设置该版本号应用于当前shell会话
pyenv shell 版本号
3.3、查看已安装python版本
pyenv versions
4、相关知识
4.1、pyenv能做什么
1,基于每个用户更改全局Python版本
2,对每个项目的Python版本提供支持
3,允许通过环境变量覆盖Python版本
4,一次搜索多个版本的Python
4.2、pyenv运行
在一个高的级别上,pyenv使用shim可执行文件注入到PATH来拦截Python命令;确定您的应用程序指定了哪个Python版本,并将命令传递给正确的已安装Python版本。
4.3、PATH
当运行诸如python或pip等命令时,操作系统将在目录列表中搜索以查找具有该名称的可执行文件。此目录列表位于一个名为PATH的环境变量中,列表中的每个目录都用冒号分隔:
/usr/local/bin:/usr/bin:/bin
PATH从左到右搜索目录,因此列表开头目录中的匹配可执行文件优先于结尾目录中的另一个可执行文件。在这个例子中, /usr/local/bin目录将被搜索的第一个,然后是/usr/bin,然后是/bin。
4.4、shims
pyenv通过在你的PATH前插入shims目录来工作:
$(pyenv root)/shims:/usr/local/bin:/usr/bin:/bin
Shim是轻量级的可执行文件,它们只是将命令传递给pyenv。因此在安装了pyenv的情况下,运行pip时操作系统将执行以下操作:
1,在PATH中搜索名称为pip的可执行文件
2,在PATH开头的shims目录中,找到名称为pip的shim文件
3,运行名称为pip的shime文件,shime将命令传递给pyenv