虚拟环境管理
Python 的依赖管理(包管理)做的并不是很好,尤其是在多个项目需要使用不同版本的包时,非常容易出现版本兼容性问题。为了解决这个问题,Python 提供了虚拟环境(Virtual Environment)机制,可以为每个项目创建独立的包环境,避免包版本冲突
虚拟环境工具
常用 pyenv-virtualenv 和 virtualenv 两个工具来创建和管理虚拟环境,两者略有不同:
pyenv-virtualenv是pyenv的一个插件,可以方便地为不同的Python版本创建虚拟环境,并且可以与pyenv无缝集成一起使用,pyenv负责Python版本管理,pyenv-virtualenv负责虚拟环境管理,可以实现管理多个Python版本下的多个虚拟环境virtualenv是一个独立的虚拟环境管理工具,可以在任何Python环境中使用,不依赖于pyenv,适用于不使用pyenv的用户,仅管理同一Python版本的虚拟环境
在实际使用中,可以根据需求选择合适的 Python 虚拟环境管理工具
pyenv-virtualenv
安装
pyenv-virtualenv 依赖 pyenv,需要先安装 pyenv,然后再安装 pyenv-virtualenv 插件
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
# 或
brew install pyenv-virtualenv
安装后需要设置init,用于加载 pyenv-virtualenv,以 zsh 为例,添加以下内容到 ~/.zshrc 文件中
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
使用
创建虚拟环境
pyenv virtualenv <python-version> <env-name>
创建后会在 $(pyenv root)/versions/ 目录下生成一个名为 <env-name> 的文件夹,里面包含了该虚拟环境的所有文件
查看虚拟环境
执行后会列出所有的虚拟环境,同一个虚拟环境会有两个名称,一个是 <env-name>,另一个是 <python-version>/envs/<env-name>,两者可以互相切换使用,较短的名称是一个符号链接,指向完整名称
pyenv virtualenvs
激活虚拟环境
pyenv activate <env-name>
退出虚拟环境
pyenv deactivate
删除虚拟环境
pyenv uninstall <env-name>