pyenv-virtualenv
- [关于 python 虚拟环境](#关于 python 虚拟环境)
- pyenv-virtualenv 的安装
- [使用 Homebrew 安装 pyenv-virtual](#使用 Homebrew 安装 pyenv-virtual)
- [从 Github 克隆 pyenv-virtualenv 仓库](#从 Github 克隆 pyenv-virtualenv 仓库)
- pyenv-virtualenv 的使用
- 删除虚拟环境
- pyenv-virtualenv 的其它操作
- [更新 pyenv-virtualenv](#更新 pyenv-virtualenv)
- [卸载 pyenv-virtualenv](#卸载 pyenv-virtualenv)
pyenv-virtualenv
pyenv-virtualenv 是一个管理 python 虚拟环境的 pyenv 插件,具体可以查看 pyenv-virtualenv 文档。
关于 python 虚拟环境
Python 虚拟环境是一个虚拟化,从电脑独立开辟出来的环境,它以某个版本的 python 为基础,在虚拟环境中可以安装项目所需的第三方库而不会对外界产生影响,虚拟环境的数量并没有限制,这样每个项目就可以有互相独立的运行环境,非常便于项目开发。
python 虚拟环境相当于一个独立的 python 版本,有自己独立的目录,也可以独立的安装第三方库,而不会相互干扰。
pyenv-virtualenv 的安装
同样,安装 pyenv-virtualenv 也有两种方式:使用 Homebrew 安装和从 Github 克隆。
[wls@xxxxxxxx ~]$ ll ~/.pyenv/plugins/
total 24
drwxrwxr-x 4 wls wls 4096 Dec 2 19:43 pyenv-doctor
drwxrwxr-x 5 wls wls 4096 Dec 2 19:43 pyenv-installer
drwxrwxr-x 5 wls wls 4096 Dec 2 19:43 pyenv-update
drwxrwxr-x 8 wls wls 4096 Dec 2 19:44 pyenv-virtualenv
drwxrwxr-x 4 wls wls 4096 Dec 2 19:44 pyenv-which-ext
drwxrwxr-x 5 wls wls 4096 Dec 2 19:43 python-build
如果你的目录里没有,从github拉一份下来就好,项目地址:https://github.com/pyenv/pyenv-virtualenv,安装步骤README有写
如果有的话可以直接使用
使用 Homebrew 安装 pyenv-virtual
正常来说,pyenv-virtualenv插件是安装pyenv自带的,在pyenv的plugin目录里可以看到它
第一步,运行下面的命令安装 pyenv-virtualenv:
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
这个命令会自动下载安装最新版本的 pyenv-virtualenv,并自动下载依赖包,安装完成后,可以运行 which pyenv-virtualenv
命令,查看是否安装成功。
第二步,初始化
在配置文件 ~/.
bashrc 中写入如下内容(这里是针对 bash shell
而言,其它类型的 shell
,配置文件的名称有所差别):
if which pyenv-virtualenv >/dev/null; then eval "$(pyenv virtualenv-init -)";fi
或者直接:
eval "$(pyenv virtualenv-init -)"
最后,通过 source ~/.
bashrc 命令使设置立即生效。
从 Github 克隆 pyenv-virtualenv 仓库
第一步,在终端执行以下命令:
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
这个命令会从 Github 克隆最新版本的 pyenv-virtualenv 仓库到本地目录 $(pyenv root)/plugins/pyenv-virtualenv
,其中 $(pyenv root)
是指 pyenv 的安装目录。
这里要注意,如果之前安装 pyenv 时不是克隆到本地目录 ~/.pyenv
,那么此处克隆时,要确保克隆到之前 pyenv 的目录下的 plugin
子目录下(没有则创建之)。
克隆完成后可以运行 which pyenv-virtualenv
命令,查看是否安装成功。
第二步,初始化
在配置文件 ~/.
bashrc 中写入如下内容(这里是针对 bash shell
而言,其它类型的 shell
,配置文件的名称有所差别):
if which pyenv-virtualenv >/dev/null; then eval "$(pyenv virtualenv-init -)";fi
或者直接:
eval "$(pyenv virtualenv-init -)"
最后,通过 source ~/.
bashrc 命令使设置立即生效。
pyenv-virtualenv 的使用
创建虚拟环境
pyenv virtualenv [version] <virtualenv-name>
这个命令可以以某版本的 python 为基础创建名为 virtualenv-name
的虚拟环境,如果不指定 python 的版本,那么就会以当前的 python 版本为基础创建虚拟环境。
虚拟环境创建时,会在 $(pyenv root)/versions
目录下创建一个对应虚拟环境名的目录,这个目录只是一个链接,真身在对应的 python 版本目录下的 envs
目录下。
列出所有的虚拟环境
pyenv virtualenvs
这个命令会列出所有存在的虚拟环境,每个虚拟环境会出现两次,分别对应相应虚拟环境目录的真身和链接。
激活和关闭虚拟环境
pyenv activate <virtualenv-name>
pyenv deactivate
这两个命令分别用于激活和关闭虚拟环境。
另外,需要注意的是,通过 pyenv local <version>
命令可以为某个目录指定所使用的 python 版本,此处可以把版本名替换为某个虚拟环境名,也就是说可以为某个目录指定所使用的虚拟环境,此时在相应的 .python-version
文件中记录的就是指定的虚拟环境名。在这种情况下,当进入这个目录时,会自动激活相应的虚拟环境,退出这个目录时,会自动关闭相应的虚拟环境(在 pyenv 中,虚拟环境和正式的 python 版本具有同样的地位,通过 pyenv versions
查看 python 版本时,虚拟环境也是作为一个独立的 python 版本出现的)。
删除虚拟环境
pyenv virtualenv-delete <virtualenv-name>
这个命令用于删除某个虚拟环境,通过以下命令也可以达到同样的效果:
pyenv uninstall <virtualenv-name>
另外,也可以直接删除虚拟环境对应的目录。
pyenv-virtualenv 的其它操作
更新 pyenv-virtualenv
如果是使用 Homebrew 安装的 pyenv-virtualenv,那么只需要执行 brew upgrade pyenv-virtualenv
命令即可将 pyenv-virtualenv 更新至最新版本;
如果是从 Github 克隆的 pyenv-virtualenv 仓库,那么需要先进入到本地的 pyenv-virtualenv 目录 ,然后执行 git pull
命令,可以将 pyenv-virtualenv 更新至最新版本。
卸载 pyenv-virtualenv
第一步,把 ~/.
bashrc 里关于 pyenv-virtualenv 的内容删除掉。
第二步,如果是使用 Homebrew 安装的 pyenv-virtualenv,那么只需要执行 brew uninstall pyenv-virtualenv
命令即可将 pyenv-virtualenv 从计算机卸载;如果是从 Github 克隆的 pyenv-virtualenv 仓库,那么需要将本地的 pyenv-virtualenv 目录删除。