为什么需要一个虚拟环境
Python官方给出的解释, 简单可以理解为隔离的沙箱环境,多个开发需求不会相互干扰。
Python应用程序通常会使用不在标准库内的软件包和模块。应用程序有时需要特定版本的库,因为应用程序可能需要修复特定的错误,或者可以使用库的过时版本的接口编写应用程序。
这意味着一个Python安装可能无法满足每个应用程序的要求。如果应用程序A需要特定模块的1.0版本但应用程序B需要2.0版本,则需求存在冲突,安装版本1.0或2.0将导致某一个应用程序无法运行。
这个问题的解决方案是创建一个 virtual environment,一个目录树,其中安装有特定Python版本,以及许多其他包。
然后,不同的应用将可以使用不同的虚拟环境。 要解决先前需求相冲突的例子,应用程序 A 可以拥有自己的 安装了 1.0 版本的虚拟环境,而应用程序 B 则拥有安装了 2.0 版本的另一个虚拟环境。 如果应用程序 B 要求将某个库升级到 3.0 版本,也不会影响应用程序 A 的环境。
方式1 venv
Python3.5 以上的版本内置了venv模块,用于创建和管理虚拟环境。
创建
# 切换到需要创建虚拟环境的目录
python3 -m venv 虚拟环境名称
python3 -m venv ven_test
激活
# 在任意的路径都可以激活 需要指向虚拟环境中的activate
# Linux / MacOS
source 路径目录/activate
source /home/user/ven_test/bin/activate
# windows
路径\ven_test\Scripts\activate.bat
退出虚拟环境
deactivate
方式2 virtualenv
安装
# 需要先安装virtualenv
pip install virtualenv
# 这是对virtualenv的封装版本,一定要在virtualenv后安装
pip install virtualenvwrapper
创建
# 在需要创建虚拟环境的目录中执行以下操作
virtualenv envname # 创建一个名字为envname的虚拟环境
激活
activate # 启动 虚拟环境, 需要进入虚拟环境的目录执行
退出
deactivate # 退出 虚拟环境, 在激活的虚拟环境中才能执行
更详细见:Win10中安装 virtualenv,激活并切换环境