1. 基本原理
如果要讲解 pyenv 的工作原理,基本上采用一句话就可以概括,那就是:修改系统环境变量 PATH。
对于系统环境变量 PATH,相信大家都不陌生,里面包含了一串由冒号分隔的路径,例如 /usr/local/bin:/usr/bin:/bin
。每当在系统中执行一个命令时,例如 python 或 pip,操作系统就会在 PATH 的所有路径中从左至右依次寻找对应的命令。因为是依次寻找,因此排在左边的路径具有更高的优先级。
而 pyenv 做的,就是在 PATH 最前面插入一个 $(pyenv root)/shims
目录。这样,pyenv 就可以通过控制 shims 目录中的 Python 版本号,来灵活地切换至我们所需的 Python 版本。
如果还想了解更多细节,可以查看 pyenv 的文档介绍及其源码实现。
2. 自动安装
1 | curl https://pyenv.run | bash |
1 | # Load pyenv automatically by adding |
完成之后记得1
source ~/.bashrc
3. pyenv 常用命令
查看可供安装的 Python 版本1
2
3pyenv install -l
pyenv install 3.8.1
1 | $ pyenv global 2.7.3 # 设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。 |
Python 执行优先级
shell > local > global
1 | $ pyenv shell 2.7.3 # 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。–unset 参数可以用于取消当前 shell 设定的版本。 |
设置 golbal python 版本1
2pyenv global 3.8.1
4. pyenv 插件:pyenv-virtualenv
4.1 创建相应的虚拟环境
1 | pyenv virtualenv 3.8.1 py3.8 |
4.2 列出当前虚拟环境
1 | pyenv virtualenvs |
1 | pip -V |
5. 使用多个 kernel 跑在不同的环境于 jupyterlab
进入虚拟环境
1 | pyenv activate py3.8 |
1 | pip install --user ipykernel |
然后 jupyterlab 里面就会多一个 py3.8 kernal 这个就是那个虚拟环境
参考
因为我们是朋友,所以你可以使用我的文字,但请注明出处:http://alwa.info