pyenv 与 virtualenv
多个python版本共存有2种方式:
python版本切换的工具—pyenv, pyenv目前还不支持windows,只支持Linux.
另外一个工具virtualenv则提供了一种功能,就是将一个目录建立为一个虚拟的python环境,
用户可以建立多个虚拟环境,每个环境里面的python版本可以是不同的,也可以是相同的,而且环境之间相互独立。
pyenv 与 virtualenv区别
pyenv 是针对 python 版本的管理,通过修改环境变量的方式实现;
virtualenv 是针对python的包的多版本管理,通过将python包安装到一个模块来作为python的包虚拟环境,通过切换目录来实现不同包环境间的切换。
pyenv安装与使用
自动安装: pyenv 提供了自动安装的工具,执行命令安装即可:
1
| curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
|
手动安装:将 pyenv 检出到你想安装的目录。建议路径为:$HOME/.pyenv
1 2
| $ cd $ git clone git://github.com/yyuu/pyenv.git .pyenv
|
添加环境变量。PYENV_ROOT 指向 pyenv 检出的根目录,并向 $PATH 添加 $PYENV_ROOT/bin 以提供访问 pyenv 这条命令的路径
1 2 3 4
| $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile # 向 shell 添加 pyenv init 以启用 shims 和命令补完功能 $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
|
这里的 shell 配置文件(~/.bash_profile)依不同 Linux作修改——Zsh:~/.zshenv;Ubuntu:~/.bashrc
重启 shell(因为修改了 $PATH),$ exec $SHELL
pyenv常用命令
1 2 3 4 5 6 7 8
| $ pyenv install --list # 该命令会列出可以用 pyenv 安装的 Python 版本。列表很长,仅列举其中几个: $ pyenv versions # 查看系统当前安装的python列表 $ pyenv install -v 3.5.1 # 安装python $ pyenv uninstall 2.7.3 # 卸载python $ pyenv update # 更新 pyenv 及其插件 $ pyenv rehash # 创建垫片路径 为所有已安装的可执行文件 (如:~/.pyenv/versions//bin/) 创建 shims, 因此,每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令)
|
python切换
1 2 3 4 5
| $ pyenv global 3.4.0 – 设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。 $ pyenv local 2.7.3 – 设置面向程序的本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。 pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。 $ pyenv shell pypy-2.2.1 – 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。–unset 参数可以用于取消当前 shell 设定的版本。 $ pyenv shell --unset
|
python优先级
shell > local > global
virtualenv安装与使用
注意:创建的虚拟环境是和你当前安装的python版本是一致的,它不能用作不同python版本的切换, 如果你要在windows下安装不同的python版本,就只能再安装一个python版本.
virtualenv主要用来管理包不同版本来设定独立的python环境,与不同版本包做区分.
在命令行窗口输入:pip install virtualenv
,回车
创建虚拟环境
如果你已经安装好virtualenv, 则进入到工程目录中,接着使用如下的命令创建一个虚拟环境
如果你的python版本低于3.4,则需要安装 virtualenv.py,
1 2 3 4 5 6
| # windows pip install virtualenv virtualenv flask # linux sudo apt-get install python-virtualenv virtualenv flask
|
这样就创建了一个完整的 Python 环境.
虚拟环境是能够激活以及停用的,如果需要的话,一个激活的环境可以把它的 bin 文件夹加入到系统路径。
我个人是不喜欢这种特色,所以我从来不激活任何环境,相反我会直接输入我想要调用的解释器的路径。如下:
调用虚拟环境的pip安装python的包
1 2 3 4
| # windows flask\Scripts\pip install flask # linux flask/bin/pip install flask
|
参考