LanYunのBlog

LanYunのBlog

马上订阅 LanYunのBlog RSS 更新: https://lanyundev.com/atom.xml

优雅地为macOS提供python多版本的支持

2023年7月3日 07:11

前言

面对多个Python开发项目时,需要针对不同的项目创建相应的开发环境

本来已经通过python官方网站上的安装包实现了python 2的支持,通过brew安装实现了最新版python的支持,但不够优雅.(安装软件包会污染环境)

本教程使用pyenv工具及其插件,来优雅地管理和切换Python版本.下面以安装python 2.7.18为例,因为macOS系统不再内置和brew不再提供python 2.故方便给需要安装python 2的用户看看.

不想整pyenv?懒得看?

下面这段命令适合你:

1
2
3
python -m venv .venv # 使用python(注意版本,例如python3等)在当前路径下.venv中创建虚拟环境
source .venv/bin/activate # 激活虚拟环境,之后的pip,python等操作都不会污染环境
deactivate # 离开虚拟环境

安装pyenv

终端输入下面命令

1
2
curl https://pyenv.run | bash # 安装pyenv,并内置插件
git clone https://github.com/pyenv/pyenv-pip-migrate.git $(pyenv root)/plugins/pyenv-pip-migrate # 不需要迁移软件包,可以不用安装

设置系统变量PATH

如果你的SHELL是zsh的话,可以看下面我的配置,bash一样

.zshrc 文件末尾处追加添加下面内容.(.zprofile也可以)

1
2
3
4
5
6
7
# pyenv
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

# pyenv-virtualenv
eval "$(pyenv virtualenv-init -)"

最后source ~/.zshrc

安装Python

1
pyenv install 2.7.18

基本用法

1
2
3
4
5
6
7
pyenv local 2.7.18 # 在当前项目目下,设置项目级别的Python版本,即在当前目录使用python为你指定的2.7.18的版本.注:后可接多个版本号
pyenv virtualenv XX XXX # XX:python版本,如果运行了上面命令可以省略,XXX:virtualenv目录的名称
# 即 在$(pyenv root)/versions 目录下创建一个基于 Python XX 的 virtualenv XXX
pyenv local ChatGLM2 # 设置项目版本并激活pyenv virtualenv,之后进入这个目录会自动激活.
# 如果不想要自动激活请在上面PATH中删除eval "$(pyenv virtualenv-init -)",或者设置项目版本为其他.
pyenv activate XXX # 激活pyenv virtualenv
pyenv deactivate XXX # 停用pyenv virtualenv,代替命令:source deactivate

常用命令

列出可用的Python版本(含virtualenv):

1
pyenv versions

列出现有的virtualenv:

1
pyenv virtualenvs

更新:

1
pyenv update

删除virtualenv

$(pyenv root)/versions目录下删除或者运行下面命令

1
2
pyenv uninstall XXX # 或者 pyenv virtualenv-delete XXX
# 或者rm -rf ~/.pyenv...

剩余内容已隐藏

查看完整文章以阅读更多