Perché Python per Windows non è installato in% PROGRAMFILES% ("C: \ Programmi")?


Risposte:


22

Apparentemente questa è la causa di una discussione di 7 anni tra gli sviluppatori di Python.

La seguente logica è stata data dagli autori:

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

Molto tempo fa, Python ha installato (per impostazione predefinita) in "Programmi". L'ho cambiato, a causa degli infiniti problemi creati dallo spazio incorporato e dei problemi più rari ma più sottili dovuti al fatto che "Programmi" non era un nome DOSish 8.3. Nel complesso penso ancora che sia stato un buon cambiamento.

Si noti che, a differenza della maggior parte delle applicazioni Windows (che sono basate sulla GUI), i linguaggi di programmazione sono destinati ad essere utilizzati pesantemente dalla riga di comando, invocati da script e così via. Questo è ciò che rende uno spazio nel percorso infinitamente soggetto a errori. In WinXP Pro, ho notato che MS stava ancora attento a mettere i propri strumenti da riga di comando / script (sort.exe, ipconfig.exe, cscript.exe, ..., anche notepad.exe) in puro DOSish 8.3 senza spazio percorsi ;-)


A parte : a causa della possibilità di escalation di privilegi, l'utilizzo di C: \ invece di C: \ Programmi \ può costituire un rischio per la sicurezza:

Autore: Mika Eloranta (mel) Data: 2005-09-07 21:34

La directory di destinazione dell'installazione predefinita in cui Python è installato su Windows si trova direttamente nella directory principale dell'unità di sistema (ad esempio "C: \ python24"). Le autorizzazioni di file e directory ereditate dalla directory python24 dalla directory principale non sono abbastanza sicure per mantenere i file binari dell'applicazione.

Nella loro infinita saggezza, Microsoft ha deciso che la directory principale dell'unità di sistema dovrebbe consentire agli utenti regolari (non amministratori) di creare directory e file lì. Questo set di autorizzazioni viene ereditato dalla directory python quando viene creato nella posizione predefinita (ad esempio "C: \ python24" o altro).

Se si desidera modificare la directory Python per evitare l'attacco escalation di privilegi discusso, dovrebbe essere possibile modificare la directory \ Python usando icacls .


quasi nessuno chiama python con il suo percorso completo. Il modo corretto è inserire la sua bincartella %PATH%e non dovrai più occuparti degli spazi. E non è vero che XP Pro abbia i suoi eseguibili da riga di comando nei percorsi DOS 8.3. Mentre i loro percorsi generalmente non hanno spazi, molti file hanno una lunghezza superiore a 8 caratteri come systeminfo.exe
phuclv
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.