148 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			148 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								title: Virtual Environments
							 | 
						|||
| 
								 | 
							
								localeTitle: 虚拟环境
							 | 
						|||
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								## 虚拟环境
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								虚拟环境可以描述为隔离的安装目录。这种隔离允许您本地化项目依赖项的安装,而不必强制您在系统范围内安装它们。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								想象一下,你有两个应用程序App1和App2。两者都需要包Pak,但有不同的版本。如果您为App1安装Pak版本2.3,您将无法运行App2,因为它需要3.1版。这是虚拟环境派上用场的时候。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								优点:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   您可以拥有多个环境,包含多组软件包,它们之间没有冲突。这样,可以同时满足不同项目的要求。
							 | 
						|||
| 
								 | 
							
								*   您可以使用自己的相关模块轻松发布项目。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								您可以通过以下两种方式创建Python虚拟环境。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## VIRTUALENV
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								[`virtualenv`](https://virtualenv.pypa.io/en/stable/)是一个用于创建独立Python环境的工具。它创建了一个文件夹,其中包含使用Python项目所需的所有必需的可执行文件。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								你可以用`pip`安装它:
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								pip install virtualenv 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								使用以下命令验证安装:
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								virtualenv --version 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 创建一个Environemnt
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								要创建虚拟环境,请使用:
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								virtualenv --no-site-packages my-env 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								这将在当前目录中创建一个文件夹,其中包含环境名称( `my-env/` )。此文件夹包含用于安装模块和Python可执行文件的目录。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								您还可以指定要使用的Python版本。只需使用参数`--python=/path/to/python/version` 。例如, `python2.7` :
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								virtualenv --python=/usr/bin/python2.7 my-env 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 列出环境
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								您可以列出可用的环境:
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								lsvirtualenv 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 激活环境
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								在开始使用环境之前,您需要激活它:
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								source my-env/bin/activate 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								这确保仅使用`my-env/`下的包。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								您会注意到环境的名称显示在提示的左侧。这样您就可以看到哪个是活动环境。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 安装包
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								您可以逐个安装软件包,也可以为项目设置`requirements.txt`文件。
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								pip install some-package 
							 | 
						|||
| 
								 | 
							
								 pip install -r requirements.txt 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								如果要从已安装的软件包创建`requirements.txt`文件,请运行以下命令:
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								pip freeze > requirements.txt 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								该文件将包含当前环境中安装的所有软件包的列表及其各自的版本。这将帮助您使用自己的相关模块发布项目。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 停用环境
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								如果您已完成虚拟环境的使用,则可以使用以下命令停用它:
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								deactivate 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								这将使您回到系统的默认Python解释器及其所有已安装的库。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 删除环境
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								只需删除环境文件夹即可。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## 康达
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								[`Conda`](https://conda.io/docs/index.html)是许多语言(包括Python)的包,依赖和环境管理。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								要安装Conda,请按照以下[说明操作](https://conda.io/docs/user-guide/install/index.html) 。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 创建一个环境
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								要创建虚拟环境,请使用:
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								conda create --name my-env 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Conda将在Conda安装目录中创建相应的文件夹。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								您还可以指定要使用的Python版本:
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								conda create --name my-env python=3.6 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 列出环境
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								您可以列出所有可用的环境:
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								conda info --envs 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 激活环境
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								在开始使用环境之前,您需要激活它:
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								source activate my-env 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 安装包
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								与`virtualenv`相同。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 停用环境
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								如果您已完成虚拟环境的使用,则可以使用以下命令停用它:
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								source deactivate 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 删除环境
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								如果要从Conda中删除环境,请使用:
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								conda remove --name my-env 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### 更多信息:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   `virtualenv` [官方网站](https://virtualenv.pypa.io/en/stable/)
							 | 
						|||
| 
								 | 
							
								*   `Conda` [官方网站](https://conda.io/docs/index.html)
							 | 
						|||
| 
								 | 
							
								*   [Hitchhicker的](http://docs.python-guide.org/en/latest/dev/virtualenvs/) `The Hitchhicker's Guide to Python` - [Pypenv和虚拟环境](http://docs.python-guide.org/en/latest/dev/virtualenvs/)
							 |