译者编程冷知识:你的电脑软件装在了哪儿?

最近朋友问了我一个问题,我觉得很有意思:怎么查看自己的Python装在了电脑的哪个位置?

一般来说在Windows操作系统中可以首先打开命令行工具,然后输入where python命令便可以可以查到。网上也能看到许多教程。

这位朋友查到之后我发给我结果,我看到地址是:C:\Users\用户名\AppData\Local\Programs

一、Windows电脑里的“本地文件夹”

我其实也很好奇为什么是这个地址,于是去查了一番,发现了以下信息:

几乎每个在Win10 PC上安装的程序都会在AppData文件夹中创建自己的文件夹,并将其所有相关信息存储在其中。 AppData或应用程序数据是Windows 10中的一个隐藏文件夹,可帮助保护用户数据和设置免遭删除和操作。 要访问它,必须在文件夹选项中选择“显示隐藏的文件和文件夹”。

来源:https://www.aclear.top/post/ed2a9102.html

仔细阅读完我终于知道:在这个AppData文件夹里,一般有三个文件夹,分别是:Local、LocalLow和Roaming,上面这个链接也介绍了这三个文件夹的作用:

Local是“本地文件夹”,主要包含与安装程序相关的文件夹,包含在其中的数据(%localappdata%)不能与用户配置文件一起移动,因为它特定于当前的电脑。

LocalLow也是本地文件夹,里面包含了无法移动的数据,有较低的访问级别。所以我们很少简单软件安装在这个文件夹里。

Roaming是“漫游文件夹”,是一种可以与服务器同步的文件夹。它的数据可以随着用户的个人资料从一台电脑移动到另一台电脑。

有些同学经常想去清理自己的电脑数据,但又不知道该去删除哪里的文件,这里还有个帖子告诉你哪个文件夹的哪些东西可以删掉:https://zhuanlan.zhihu.com/p/62030272

二、Windows电脑里的其他存储软件数据的文件夹

关于Windows系统中软件安装位置的区别,可以看这个帖子,非常受用:https://www.jianshu.com/p/677846a93056

简单说就是:

1)AppData文件夹:是“Application Data Folder”,是用来存储应用程序数据的文件夹,程序运行时产生的数据可以存放到这里来。

2)Documents文件夹:即我们电脑上的“我的文档”,虽然我们用的操作系统里看到的是四个中文字,但点开之后会发现,其完整的地址是:C:\Users\用户名\Documents

这个文件夹里存储了许多我们平时用的许多程序的项目文件,所以这个文件夹的数据可不能轻易删掉,删掉之后可能你做的工作、玩儿的游戏都会出现数据丢失的情况。

3)Registry注册表:注册表可以看作是一张Excel表,可以通过注册表编辑器来修改,许多软件的配置数据都存储在这些数据表里,这也是为什么有人在破解某些软件时会去修改注册表,就是为了迷惑软件的正版验证机制,所以现在许多软件越来越聪明了,就算你修改注册表也没有用。

4)Program Files文件夹:Windows电脑最常见的软件安装位置,点开之后会看到很多软件的名字。有些同学的电脑上既有Program Files文件夹,也有Program Files(x86)文件夹,两者的区别是:如果你安装的软件是64位的,那么这个软件一般会安装在Program Files文件夹里;如果你安装的软件是32位的,那么软件就可能安装在Program Files(x86)文件夹里。我们平时用到的许多软件都是32位的,因此电脑里出现“x86”的文件夹就再正常不过了。

三、Python究竟安装在哪个文件夹?

其实我这位朋友的Python安装地址之所以让我觉得陌生,是因为我还见过其他的安装地址。说起Python安装,有些同学并不是直接去官网上下载Python来安装的,而是使用了Anaconda这样的工具,此时的Python又安装在哪里了呢?

我找了一个示例的位置,如下:

C:\Users\用户名\AppData\Local\conda\conda\envs\python35

可以看到这个python是位于Anaconda这个工具的目录里面的,但也是在AppData文件夹下。

不过还会发现有些情况下软件是安装在这样的链接下面:

C:\ProgramData

简单的原因是:ProgramData是所有用户共享的软件,而AppData前面有用户名,表明这是属于某个用户的软件。有时候我们用管理员权限安装的所有用户可用的软件,就位于ProgramData里面。

前面我分享的帖子里也有这样的描述:
ProgramData文件夹跟AppData文件夹基本类似,都是用来存放一些setting文件、缓存文件的,不同的是ProgramData是所有用户共享的,没有私有的文件夹。在XP时代,存放在C:\Documents and Settings\All Users\Application Data,从Vista开始,将这些应用数据都转移到C:\ProgramData下。

对于初学Python的用户,我个人建议还是使用Anaconda这样的工具来安装Python,因为这个工具装好后Python就装好了,而且你还可以在这个工具的框架内安装不同版本的Python。Python的安装和卸载都很方便。不必再去关注自己的Python安装在了哪个文件夹里。我的美国同事Nick还建议在Windows上使用Chocolatey来安装Python,非常方便。

Anaconda:https://www.anaconda.com/
Chocolatey:https://chocolatey.org/

这都是大家的经验之谈啊,你下次学Python的时候,不一定非要按照某些教程里讲的那样从Python官网直接去下载安装包,装完都不一定知道自己把软件装哪里去了。打仗了要去领枪,开战了却不知道自己的枪放哪儿了,那还怎么战斗?

四、Mac电脑里的Python装在了哪儿?

其实Mac电脑买来之后本身就自带了Python的,但是这个Python的版本是2.X,可以简单理解为是Python二代。但现在大家普遍使用的是Python 3.X,可以理解为是Python三代。这两代Python默认安装的位置是不一样的,这个帖子里有比较详细的说明:

https://jiyiren.github.io/2017/10/31/python_environmet/

简单来说就是,Mac电脑自带的Python二代一般安装的地址是:/usr/bin/python文件夹,而你自己安装的Python三代一般安装的地址是:/usr/local/bin/python3。之所以你安装的会跑到local文件夹里,是因为你的权限不高,通过普通安装方式安装的Python就会到这个权限低一点的文件夹里。

我们这里看到的bin是二进制Binaries的缩写,这个文件夹里一般存储的就是应用程序的可执行命令,所以我们安装软件时软件的可执行代码就会跑到这个bin文件夹里。

小结

今天分享的冷知识可能真得很冷,但希望可以帮助大家了解电脑上安装的软件究竟去了哪里。