为什么Windows XP的Python未安装在%PROGRAMFILES%(“ C:\ Program Files”)中?


Answers:


22

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

作者给出了以下理由:

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

很久以前,Python确实(默认)安装在“程序文件”下。由于frickin的嵌入式空间产生了无尽的问题,并且由于“程序文件”不是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目录从根目录继承的文件和目录权限不够安全,无法保留应用程序二进制文件。

Microsoft无限智慧地决定,系统驱动器的根目录应允许常规(非管理员)用户在此处创建目录和文件。当在默认位置(即“ C:\ python24”或任何其他位置)创建权限时,这组权限将由python目录继承。

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


几乎没有人使用完整路径调用python。正确的方法是将其放入bin文件夹中,%PATH%而您不再需要处理空格。XP Pro在DOS 8.3路径中具有命令行可执行文件并不是事实。尽管它们的路径通常没有空格,但是许多文件的长度超过8个字符,例如systeminfo.exe
phuclv
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.