Pourquoi Python pour Windows n'est-il pas installé dans% PROGRAMFILES% («C: \ Program Files»)?
23
Python a été initialement installé dans C: \ Program Files \ Python, mais cela a changé vers 1.5. Quel était le raisonnement derrière cette décision? Est-ce une mauvaise idée de revenir sur le répertoire, et si oui, pourquoi?
Apparemment, c'est la cause d'une discussion de 7 ans entre les développeurs Python.
La justification suivante a été donnée par les auteurs:
Auteur: Tim Peters (tim.peters) * (committer Python) Date: 2006-03-22 20:27
Il y a longtemps, Python a installé (par défaut) sous "Program Files". J'ai changé cela, en raison des problèmes sans fin créés par l'espace intégré de frickin ', et des problèmes plus rares mais plus subtils dus au fait que "Program Files" n'est pas un nom DOSish 8.3. Dans l'ensemble, je pense toujours que c'était un bon changement.
Notez que, contrairement à la plupart des applications Windows (qui sont basées sur une interface graphique), les langages de programmation sont destinés à être largement utilisés à partir de la ligne de commande, invoqués par des scripts, etc. C'est ce qui rend un espace sur le chemin infiniment sujet aux erreurs. Dans WinXP Pro, j'ai remarqué que MS faisait toujours attention à mettre ses propres outils de ligne de commande / script (sort.exe, ipconfig.exe, cscript.exe, ..., même notepad.exe) sous Pure DOSish 8.3 sans espace chemins ;-)
En plus : En raison de la possibilité d'une élévation de privilèges, l'utilisation de C: \ au lieu de C: \ Program Files \ peut être un danger pour la sécurité:
Auteur: Mika Eloranta (mel) Date: 2005-09-07 21:34
Le répertoire cible d'installation par défaut où Python est installé sous Windows se trouve directement sous le répertoire racine du lecteur système (par exemple, "C: \ python24"). Les autorisations de fichier et de répertoire héritées par le répertoire python24 du répertoire racine ne sont pas suffisamment sécurisées pour conserver les fichiers binaires d'application.
Microsoft, dans leur sagesse infinie, a décidé que le répertoire racine du lecteur système devrait permettre aux utilisateurs réguliers (non administrateurs) d'y créer des répertoires et des fichiers. Cet ensemble d'autorisations est hérité par le répertoire python lorsqu'il est créé à l'emplacement par défaut (c'est-à-dire "C: \ python24" ou autre).
Si vous souhaitez modifier le répertoire Python pour éviter l'attaque par élévation de privilèges discutée, il devrait être possible de modifier le répertoire \ Python à l'aide d' icacls .
presque personne n'appelle python avec son chemin complet. La bonne façon est de mettre son bindossier dans %PATH%et vous n'aurez plus besoin de gérer les espaces. Et ce n'est pas vrai que XP Pro a ses exécutables en ligne de commande dans les chemins DOS 8.3. Bien que leurs chemins n'aient généralement pas d'espace, de nombreux fichiers ont une longueur supérieure à 8 caractères comme systeminfo.exe
Réponses:
Apparemment, c'est la cause d'une discussion de 7 ans entre les développeurs Python.
La justification suivante a été donnée par les auteurs:
En plus : En raison de la possibilité d'une élévation de privilèges, l'utilisation de C: \ au lieu de C: \ Program Files \ peut être un danger pour la sécurité:
Si vous souhaitez modifier le répertoire Python pour éviter l'attaque par élévation de privilèges discutée, il devrait être possible de modifier le répertoire \ Python à l'aide d' icacls .
la source
bin
dossier dans%PATH%
et vous n'aurez plus besoin de gérer les espaces. Et ce n'est pas vrai que XP Pro a ses exécutables en ligne de commande dans les chemins DOS 8.3. Bien que leurs chemins n'aient généralement pas d'espace, de nombreux fichiers ont une longueur supérieure à 8 caractères comme systeminfo.exe