为什么 Python for Windows 没有安装在 %PROGRAMFILES% ("C:\Program Files") 中?

Chr*_*ris 28 windows python

Python 最初安装在 C:\Program Files\Python 中,但在 1.5 左右发生了变化。这个决定背后的原因是什么?将目录改回是不是一个坏主意,如果是,为什么?

Chr*_*ris 26

显然,这是Python 开发人员之间长达7 年的讨论的原因。

作者给出了以下理由:

作者:Tim Peters (tim.peters) * (Python committer) 日期:2006-03-22 20:27

很久以前,Python 确实安装(默认)在“程序文件”下。我改变了它,因为该死的嵌入空间造成了无穷无尽的问题,以及由于“程序文件”不是 DOSish 8.3 名称而导致的更罕见但更微妙的问题。总的来说,我仍然认为这是一个很好的改变。

请注意,与大多数 Windows 应用程序(基于 GUI)不同,编程语言旨在从命令行大量使用、由脚本调用等。这就是使路径中的空间无休止地容易出错的原因。在 WinXP Pro 中,我注意到 MS 仍然小心地将其自己的命令行/脚本工具(sort.exe、ipconfig.exe、cscript.exe、...,甚至 notepad.exe)放在纯 DOSish 8.3 空间下路径;-)


旁白:由于权限提升的可能性,使用 C:\ 而不是 C:\Program Files\ 可能存在安全隐患:

作者:Mika Eloranta (mel) 日期:2005-09-07 21:34

Windows 上安装 Python 的默认安装目标目录直接位于系统驱动器的根目录下(例如“C:\python24”)。python24-directory 从根目录继承的文件和目录权限不够安全,无法保存应用程序二进制文件。

微软以其无限的智慧决定系统驱动器的根目录应该允许普通(非管理员)用户在那里创建目录和文件。在默认位置(即“C:\python24”或其他位置)创建时,这组权限由python目录继承。

如果要修改 Python 目录以避免讨论的权限提升攻击,应该可以使用icacls修改 \Python 目录。

  • 几乎没有人调用 python 及其完整路径。正确的方法是将其“bin”文件夹放入“%PATH%”中,您将不再需要处理空格。 XP Pro 的命令行可执行文件位于 DOS 8.3 路径中也是不正确的。虽然它们的路径通常没有任何空格,但许多文件的长度超过 8 个字符,例如 systeminfo.exe (2认同)