使用Python创建虚拟环境

在开发基于Python的应用程序时,可能需要特定版本的Python软件包。但是,如果安装了同一版本的同一软件包以供系统使用,则可能与其他应用程序的要求冲突。因此,期望为每种目的都具有并行环境以解决兼容性问题。

虚拟环境允许将Python软件包安装在特定应用程序的隔离位置,而不是全局安装。

Python标准库中的venv模块用于创建虚拟环境。虚拟环境是文件系统中的一个目录,具有自己的Python解释器和其他脚本的副本。以下命令在命名目录中创建虚拟环境。

C:\python37>python -m venv e:\testenv

您将找到一个按指定创建的新目录。以上可以选择使用以下开关

--system-site-packages
 授予虚拟环境访问系统站点软件包目录的权限。
  -符号链接  
 尝试使用符号链接而不是副本
  -副本      
  尝试使用副本而不是符号链接
  - 明确      
   删除环境目录的内容(如果存在)
  - 升级    
   升级环境目录以使用此版本的Python
  -无点  
       跳过在虚拟环境中安装或升级pip(默认情况下,pip已引导)

ENV_DIR(在本例中为testenv)下的'scripts'文件夹包含Python解释器,pip安装程序和用于激活和停用环境的脚本的本地副本。

activate
activate.bat
activate.ps1
deactivate.bat
easy_install-3.7.exe
easy_install.exe
pip.exe
pip3.7.exe
pip3.exe
python.exe
pythonw.exe

激活虚拟环境

为了在隔离的环境中启动Python,必须首先将其激活。为此,必须从命令行调用“ activate.bat”。

E:\testenv>scripts\activate

(testenv) E:\testenv>python
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

虚拟环境的名称显示在DOS提示符左侧的括号中。现在,您可以在虚拟环境中使用Python。

如果使用虚拟环境的scripts文件夹中的pip3实用程序安装了任何软件包,则它将在本地安装,并且无法在系统范围内使用。

停用虚拟环境

要返回正常环境,应使用脚本文件夹中的“ deactivate.bat”禁用虚拟环境。

>>> quit()(testenv) E:\testenv>scripts\deactivate
E:\testenv>

对于3.3之前的Python版本,请使用virtualenv,必须单独安装。

venv模块定义了EnvironmentBuilder类,用于以编程方式创建虚拟环境。