¿Por qué Python para Windows no está instalado en% PROGRAMFILES% ("C: \ Archivos de programa")?

Respuestas:

22

Aparentemente, esta es la causa de una discusión de 7 años entre los desarrolladores de Python.

La siguiente justificación ha sido dada por los autores:

Autor: Tim Peters (tim.peters) * (Python committer) Fecha: 2006-03-22 20:27

Hace mucho tiempo, Python se instaló (por defecto) en "Archivos de programa". Cambié eso, debido a los interminables problemas creados por el maldito espacio incrustado, y problemas más raros pero más sutiles debido a que "Archivos de programa" no es un nombre de DOSish 8.3. En general, sigo pensando que fue un buen cambio.

Tenga en cuenta que, a diferencia de la mayoría de las aplicaciones de Windows (que están basadas en GUI), los lenguajes de programación están destinados a ser utilizados en gran medida desde la línea de comandos, invocados por scripts, etc. Eso es lo que hace que un espacio en el camino sea infinitamente propenso a errores. En WinXP Pro, noté que MS todavía tenía cuidado de poner sus propias herramientas de línea de comandos / script (sort.exe, ipconfig.exe, cscript.exe, ..., incluso notepad.exe) en DOSish 8.3 puro sin espacio rutas ;-)


Aparte : debido a la posibilidad de escalada de privilegios, usar C: \ en lugar de C: \ Archivos de programa \ puede ser un peligro para la seguridad:

Autor: Mika Eloranta (mel) Fecha: 2005-09-07 21:34

El directorio de destino de instalación predeterminado donde Python es la instalación en Windows está directamente debajo del directorio raíz de la unidad del sistema (por ejemplo, "C: \ python24"). Los permisos de archivo y directorio heredados por el directorio python24 del directorio raíz no son lo suficientemente seguros para mantener los archivos binarios de la aplicación.

Microsoft, en su sabiduría infinita, decidió que el directorio raíz de la unidad del sistema debería permitir a los usuarios habituales (no administradores) crear directorios y archivos allí. El directorio de Python hereda este conjunto de permisos cuando se crea en la ubicación predeterminada (es decir, "C: \ python24" o lo que sea).

Si desea modificar el directorio Python para evitar el ataque de escalada de privilegios discutido, debería ser posible modificar el directorio \ Python usando icacls .

Chris
fuente
casi nadie llama a python con su ruta completa. La forma correcta es colocar su bincarpeta %PATH%y ya no tendrá que ocuparse de los espacios. Y no es cierto que XP Pro tenga sus ejecutables de línea de comandos en las rutas de DOS 8.3. Si bien sus rutas generalmente no tienen espacios, muchos archivos tienen una longitud mayor a 8 caracteres como systeminfo.exe
phuclv