1. 什么是Python虚拟环境
Python虚拟环境是针对不同Python工程的独立环境,用于隔离不同工程之间的依赖关系。每个虚拟环境都有自己的解释器、依赖库和Python程序,可以在不同环境中使用不同版本的Python和第三方库,避免Python的全局环境被更改,导致项目之间的冲突。虚拟环境创建后,不受全局Python环境变量和库文件影响,可以单独管理Python程序、依赖库。
2. Python虚拟环境的作用
2.1 隔离依赖
Python虚拟环境的主要作用之一就是隔离依赖,防止不同项目依赖的库版本冲突。例如,一个项目需要使用flask 0.12版本,而另一个需要用到flask 1.0版本。如果在同一个Python环境下,就需要同时安装两个版本的flask,并同时运行两个项目。这种情况很容易带来不必要的麻烦,例如版本冲突、应用崩溃等。通过使用虚拟环境,每个项目的依赖都可以被单独管理,不会与其他项目冲突。
2.2 接管Python环境
Python虚拟环境的一大优势是能够接管Python环境。Python直接安装在系统中,会将Python放在系统的PATH环境变量下,因为Python不同的版本的变化会直接影响到每个工程。在虚拟环境中,Python环境是独立的,可以避免因Python环境版本差异,导致程序无法执行。
3. Python虚拟环境的使用
3.1 安装虚拟环境模块
Python官方提供了一个Virtualenv工具,可以用来创建虚拟环境。首先,需要安装virtualenv:
pip install virtualenv
3.2 创建虚拟环境
安装完成后,就可以使用virtualenv创建虚拟环境:
virtualenv venv
上述命令创建了一个名为venv的虚拟环境。在此之后,所有的Python程序和库都被安装在venv目录下。有时,为了区分不同版本的Python,可以给虚拟环境命名,如:
virtualenv -p /usr/bin/python3.6 venv_py36
上述命令创建了一个名为venv_py36的虚拟环境,并使用Python3.6来创建环境。
3.3 运行虚拟环境
虚拟环境创建完成后,需要激活虚拟环境才能使用它。在Linux/Mac系统下,激活命令为:
source venv/bin/activate
在Windows下,则为:
venv\Scripts\activate.bat
激活虚拟环境后,终端会显示虚拟环境名称,并且命令提示符前会加上环境名称的前缀。
3.4 安装Python包
激活虚拟环境,就可以使用pip安装Python包,如:
pip install flask
在虚拟环境中,所有Python包都是安装在虚拟环境目录下,与全局Python环境完全隔离。
3.5 退出虚拟环境
退出虚拟环境,使用的是deactivate命令:
deactivate
4. Pyenv
4.1 Pyenv是什么
pyenv是一个用于管理多个Python版本的工具,类似于nodejs的nvm,不需要sudo及root用户权限即可在单个用户环境下为不同项目配置不同的Python版本。此外,pyenv还支持对不同Python版本配置不同的依赖库、Python解释器和环境变量。
4.2 安装Pyenv
在Unix/Linux系统下,可以使用curl或wget命令安装pyenv,如:
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
pyenv会被安装在用户目录下的~/.pyenv/目录下。
4.3 配置Pyenv
安装后,需要在bashrc/zshrc等配置文件中配置环境变量,使pyenv可用。在bashrc/zshrc文件中添加以下代码:
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
4.4 使用Pyenv
4.4.1 安装Python版本
在pyenv中,安装Python非常简单:
pyenv install 3.6.4
上述命令会从官网下载Python 3.6.4版本的源码,进行编译安装,安装好的Python将会被存储在~/.pyenv/versions/目录下。
4.4.2 查看已安装Python版本
查看已经安装的Python版本,使用以下命令:
pyenv versions
4.4.3 切换Python版本
pyenv可以在不同版本之间进行切换。使用以下命令进行Python版本切换:
pyenv global 3.6.4
上述命令将Python全局版本设置为3.6.4。
4.4.4 创建虚拟环境
pyenv还可以创建虚拟环境,使用以下命令:
pyenv virtualenv 3.6.4 venv3.6.4
上述命令创建了一个名为venv3.6.4的虚拟环境,版本为Python3.6.4。
4.4.5 查看已安装虚拟环境
查看已经安装的虚拟环境,使用以下命令:
pyenv virtualenvs
4.4.6 激活虚拟环境
激活虚拟环境,使用以下命令:
pyenv activate venv3.6.4
4.4.7 退出虚拟环境
退出虚拟环境,使用以下命令:
pyenv deactivate
5. 总结
Python虚拟环境和pyenv都是非常好用的Python环境管理工具。前者用于管理Python的全局依赖库和环境,解决不同项目之间Python版本和库版本的冲突,后者用于管理Python版本和虚拟环境,可以在不同版本的Python之间随意切换,为不同项目提供独立的开发环境。在实际项目中,根据实际情况选择适合自己的Python环境管理工具非常重要。