Pycharm使用中有关环境变量、解释器、虚拟环境的梳理

一、环境变量

  • 系统变量和用户变量:
    计算机优先查找系统变量,如果没有,才查找用户变量。这种安排便于多用户的管理。

  • PATH变量的优先级:
    自上而下,优先级越来越低,这种顺序可以更改

如图当用户在终端输入python时,计算机则会优先到F:\env\Python3.13\目录下寻找python解释器(即python.exe)

二、解释器

其实刚刚已经提到,解释器就是那个可执行文件python.exe

其用于把高级语言翻译成机器语言供计算机执行

python解释器是逐行进行解释的,又和c、java等有所区别,所以其无需对项目进行编译便可以执行代码

当你把解释器的路径添加到系统变量时(并且其优先级最高),其就成为了python系统解释器,这将区别于后续讲到的虚拟环境解释器。

先来看看最基础的系统解释器安装后的文件夹

同理,如果你在环境变量里添加pip可执行文件的路径,则也可以在终端直接调用pip来进行下载第三方库,下载的第三方库将被添加到../Lib/site-packages 中。

所以截止目前,你所操作的都是python系统解释器

三、虚拟环境

假设没有虚拟环境,你所有的项目都使用python系统解释器,时间一长,会有什么后果?

比如有一段时间你研究项目A,你通过pip安装了项目A所需的第三方库;后来你又研究项目B,你又安装了B所需的第三方库;然后就有C、D……

这样一来,你的python系统环境里就塞满了各种各样的第三方库(注意前文提到的:下载的第三方库将被添加到../Lib/site-packages)。

如果有一天你的项目A要发布,你需要打包编译A成一个应用程序给其他人使用时,如果不在特殊指定下,python将默认把环境中所有的第三方库都打包进去,这时你的应用程序的体积将会变得无比巨大(可事实上项目A仅仅使用了与之有关的几个第三方库,而根本用不着B、C项目所需的第三方库)

当然,如果你仅仅使用python来编写调试代码(并不涉及打包发布操作时),完全不会遇到这种烦恼,你也可以放心的只使用python系统解释器。

但对于一些开发应用的程序员来说,为了避免刚刚提到的问题,创建虚拟环境便成为了最佳之选。

所以虚拟环境就是用来隔离不同项目所需的第三方库,系统解释器下通常只安装一些所有项目通用的第三方库,虚拟环境的第三方库可以从系统解释器里继承(无需再次下载),又可以完美解决同一个库重复安装的问题。

pycharm提供了便捷的创建虚拟环境的办法,创建虚拟环境时当然也要创建虚拟环境专用的解释器(称为虚拟解释器),其实可以理解为系统解释器的拷贝,由于这种关联性,人们常把创建虚拟环境和创建虚拟解释器当作同一个意思,但这并不影响我们的操作,下面就创建一个

可以看到现在编译器使用的是系统解释器,我们点击添加解释器

创建一个名为TEST的虚拟解释器,其为系统解释器的拷贝,选钩继承全局站点软件包则虚拟解释器(虚拟环境)将能够访问系统解释器下已经安装的所有第三方库,这样一来虚拟环境下就不用再次安装

可见TEST虚拟环境创建完成,可以在对应的目录下找到,并且复制了系统解释器下的第三方库,如果此时在虚拟环境中安装其他的第三方库,也不会影响其他的任何解释器(包括系统解释器),这就完美的避免了不同项目之间造成的环境污染问题。

同一个项目也可以更换使用不同的解释器(或称虚拟环境),很简单,只需点击应用即可

所以在文件目录上也需要用心规划,对我个人而言,我更喜欢创建三个目录,分别用于存放编译器的相关文件、工程项目、虚拟环境(虚拟解释器),如下图所示

这样一来就就不容易搞混了。

时间精力有限,排版不好,内容可能存在瑕疵,欢迎指正、补充。

posted @   wyuu101  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示