系统相关
首页 > 系统相关> > 想要彻底了解Windows虚拟环境?这一篇墙裂推荐!

想要彻底了解Windows虚拟环境?这一篇墙裂推荐!

作者:互联网

 

前段时间介绍了Windows下创建虚拟环境的具体步骤,详细请戳链接:https://www.cnblogs.com/weijia-home/p/15024935.html

 

可能有些朋友对某些细节概念方面的知识还有些陌生,那么今天来补充一下与虚拟环境相关的一些基础概念和工具。

 

 

一些基本概念

 

为什么Python如此强大,受到人们的推崇

1.自身语言的特性,简单易写,这一点想必大家都很清楚。

2.拥有无所不及的第三方库。强大的软件库,让开发者将精力集中在业务上,不必要在简单没有意义的代码上浪费时间(避免重复造轮子的浪费)

 

为什么创建虚拟环境

为了避免因为版本造成的互不兼容,为项目创建纯净的依赖环境

 

python 版本

Python 版本指的是 Python 解析器本身的版本。Python有两个大版本,分别是Python2和Python3。但是Python3 不能与 Python2 兼容,导致一些软件库需要设配两种版本的 Python,同时开发者可能需要在一个环境中,部署不同版本的 Python,对开发和维护造成了麻烦。因此出现了版本管理器 Pyenv,类似于 nodejs 的 nvm,可以创建出相互隔离的 Python 环境,并且可以方便的切换环境中的 Python 版本,但和 Python 虚拟环境关系不大。

 

python 包库

包库也有很多其它的叫法,如:项目、软件源,意思就是别人已经写好的代码。Python库就是用Python写好的程序代码,模块,项目,包的集合。只要你想调用,都是现成的,可以发布、下载和管理。打个比方,就像你平时用的生活用品,你总不可能所有的都自己制作,生产,是要去买的。库就像一个超市,你要什么就去里面寻找。好处很明显,即自己就没必要重复造那些麻烦又没有技术含量的轮子了。

其中 pypi (Python Package Index) https://pypi.org/ 是官方指定的软件包库,基于其上的 pip 工具就是从这里查找、下载安装软件包的。为了提高下载速度,世界上有很多 Pypi 的镜像服务器,在国内也有多个软件源,例如阿里的软件源是:http://mirrors.aliyun.com/pypi/simple/。除此之外,还有其他软件源,如正对科学计算的 anaconda 的软件源 https://repo.anaconda.com/

具体参考链接:https://www.cnblogs.com/weijia-home/p/15017889.html

 

python 包管理器

首先得弄懂为什么需要Python包管理器,是因为软件包源中的软件包数量巨大,版本多样,不依靠适当的工具很难以管理,很复杂。故需要借助于软件源管理工具,例如 pip、conda、Pipenv、Poetry 等

很多包管理工具不仅提供了基本的包管理功能,还提供了虚拟环境构建,程序管理的等功能

 

Python 虚拟环境

虚拟环境是一个包含了特定 Python 解析器以及一些软件包的自包含目录,不同的应用程序可以使用不同的虚拟环境,从而解决了依赖冲突问题,而且虚拟环境中只需要安装应用相关的包或者模块,可以给部署提供便利。

在工作学习过程中,会不可避免的同时开发多个工程项目。 当出现下列情况:

------两个工程依赖同一个包,但需要的版本不相同,工程A依赖v1.0.0 的包,而工程B依赖的是v2.0.0的包。由于Python无法根据版本来区分包的安装路径,所以这里就会发生版本冲突

------有的项目需要使用Python2来进行开发,有的项目则是需要Python3来进行开发。Python无法分开环境,此时两个环境开始打架,彼此傻傻分不清楚。

以上情况就需要创建虚拟环境,将开发环境进行隔离,让彼此不受影响。

综上所述,因为Python 应用在开发工程项目时,经常需用不同版本的包或者不同版本的解析器,所以不能有一个能适应所有 Python 应用的软件环境,很多时候不同的 Python 应用所依赖的版本是冲突的,满足了其中一个,另一个则无法运行,所以这个时候就需要虚拟环境来将不同版本隔离,使其互不干扰。

 

构建虚拟环境原理

主要是利用了操作系统中环境变量以及进程间环境隔离的特性

操作系统的环境变量可以为程序提供信息和做信息交换介质,进程可以共享操作系统中的环境变量,也可以为进程指定环境变量,其中 PATH 是很重要的环境变量,用于为操作系统和程序提供可执行文件的访问路径,例如写一个程序 a.exe,存放在 D:\MyProgram 中,在命令行中执行 a.exe ,会得到提示“ 无法找到程序 a.exe”,为了让系统找到,可以将 D:\MyProgram 路径加入到 PATH 环境变量中,当输入 a.exe 时,操作系统就会从 PATH 所提供的路径中逐个查找,这时就可以找到了。Linux 和 MacOS 具有相似的特性,甚至比 Windows 的功能更丰富。

Python 虚拟环境就是利用这个特性构建的,在激活虚拟环境之时,激活脚本会将当前命令行程序的 PATH 修改为虚拟环境的,这样执行命令就会在被修改的 PATH 中查找,从而避免了原本 PATH 可以找到的命令,从而实现了 Python 环境的隔离。(我愿称之为狸猫换太子)

为了让开发容易区分当前环境是否虚拟环境以及是那个虚拟环境,命令提示符前会加上特殊标记,例如:

或者:红框中的路径就是你目前项目运行的解释器的路径,如果这个解释器不是你最初安装Python的路径,那么说明你目前处在虚拟环境当中。以下就是我安装虚拟环境的路径:

 

 

 

实际开发中虚拟环境与开发工具配合

虽然通过激活脚本,很容易切换到虚拟环境,但是在实际开发中,还是不够方便,而且现在很多开发工具,特别是提供 Python 解析环境的开发工具,都可以和虚拟环境配合,在开发过程中几乎无感,对开发工作是很大的帮助

 

Visual Studio Code

简称“VS Code”,是一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代Web和云应用的跨平台源代码编辑器,  可在桌面上运行,并且可用于Windows,macOS和Linux。它具有对JavaScript,TypeScript和Node.js的内置支持,并具有丰富的其他语言(例如C++,C#,Java,Python,PHP,Go)和运行时(例如.NET和Unity)扩展的生态系统。

VS Code 是个后起之秀,功能强大且具有丰富的插件资源,无疑是这两年发展最快的综合开发工具。现在的版本配置 Python 虚拟环境很简单,只需要选择一个 Python 解释器就好了

同时按下 Ctrl+Shift+P, 在弹出的命令窗口中输入 "解析器",然后在下拉列表中选择 "Python:选择解析器",这里会缓存一些已经创建好的解析器,如果没有想要的,可以选择 "Enter interpreter path" 来选择解析器路径,即已经创建好的虚拟环境脚本文件夹中的 Python 程序,就可以创建一个新的解析器

选择 Python 解析器

如果编辑的是 Python 代码文件,在状态栏中也可以选择和切换解释器,更为方便

选择 Python 解析器

 

Pycharm

Pycharm 应该是功能最好的 Python 开发工具,转为 Python 开发而生,除了基本的开发功能外,还提供项目创建、打包、测试等丰富功能,有很大的市场占有率

创建项目时,在项目创建对话框中,可以创建或者选择已经已有的解析器

选择 Python 解析器

选择创建新的解析器时,需要选择创建虚拟环境的工具,如 virtualenv;指定虚拟环境的目录;选择 Python 基础解析器,同 virtualenv 工具的 -p 参数的效果;以及是否要继承基础解析器的第三方库 和 是否将这个虚拟环境作为默认环境,即创建其他项目时默认选择

如果选择已存在的解析器,和 VS Code 差不多,可以选择已经缓存的或者指定解析器的路径

 

部署虚拟环境

 

请戳链接:https://www.cnblogs.com/weijia-home/p/15024935.html

介绍的非常详细,新手友好!

 

总结

今天主要了解了 Python 虚拟环境的相关概念和工具,并简单描述了实际工作中的一些使用方式,以便能在开发过程中使用。多学多练嘛

 

标签:解析器,Windows,创建,墙裂,Python,虚拟环境,版本,软件包
来源: https://www.cnblogs.com/weijia-home/p/15031871.html