Python został pierwotnie zainstalowany w C: \ Program Files \ Python, ale zmieniło się to około 1.5. Jakie było uzasadnienie tej decyzji? Czy zmiana katalogu jest zła, a jeśli tak, to dlaczego?
Python został pierwotnie zainstalowany w C: \ Program Files \ Python, ale zmieniło się to około 1.5. Jakie było uzasadnienie tej decyzji? Czy zmiana katalogu jest zła, a jeśli tak, to dlaczego?
Odpowiedzi:
Najwyraźniej jest to przyczyną 7-letniej dyskusji między programistami Python.
Autorzy podali następujące uzasadnienie:
Autor: Tim Peters (tim.peters) * (osoba odpowiedzialna za Python) Data: 22.03.2006, 20:27
Dawno temu Python instalował się (domyślnie) w „Program Files”. Zmieniłem to, z powodu niekończących się problemów tworzonych przez cholernie osadzoną przestrzeń i rzadszych, ale subtelniejszych problemów, ponieważ „Program Files” nie są nazwami DOSish 8.3. Ogólnie nadal uważam, że to dobra zmiana.
Zauważ, że w przeciwieństwie do większości aplikacji Windows (opartych na GUI), języki programowania są przeznaczone do intensywnego używania z linii poleceń, wywoływane przez skrypty i tak dalej. To sprawia, że przestrzeń na ścieżce jest nieskończenie podatna na błędy. W WinXP Pro zauważyłem, że MS nadal ostrożnie umieszcza własne narzędzia wiersza polecenia / skryptu (sort.exe, ipconfig.exe, cscript.exe, ..., nawet notepad.exe) pod czystym DOSish 8.3 bez miejsca ścieżki ;-)
Poza tym : Ze względu na możliwość eskalacji uprawnień, użycie C: \ zamiast C: \ Program Files \ może stanowić zagrożenie bezpieczeństwa:
Autor: Mika Eloranta (mel) Data: 2005-09-07 21:34
Domyślny katalog docelowy instalacji, w którym Python instaluje się w systemie Windows, znajduje się bezpośrednio w katalogu głównym dysku systemowego (np. „C: \ python24”). Uprawnienia do plików i katalogów dziedziczone przez katalog python24 z katalogu głównego nie są wystarczająco bezpieczne do przechowywania plików binarnych aplikacji.
W swojej nieskończonej mądrości Microsoft zdecydował, że katalog główny dysku systemowego powinien umożliwiać zwykłym użytkownikom (niebędącym administratorami) tworzenie katalogów i plików. Ten zestaw uprawnień jest dziedziczony przez katalog python, gdy jest tworzony w domyślnej lokalizacji (tj. „C: \ python24” lub cokolwiek innego).
Jeśli chcesz zmodyfikować katalog Python, aby uniknąć omawianego ataku związanego z eskalacją uprawnień, powinna istnieć możliwość modyfikacji katalogu \ Python za pomocą icacls .
bin
folderze %PATH%
i nie będziesz już musiał zajmować się spacjami. I nie jest prawdą, że XP Pro ma swoje pliki wykonywalne z linii poleceń w ścieżkach DOS 8.3. Chociaż ich ścieżki na ogół nie mają spacji, wiele plików ma długość dłuższą niż 8 znaków, np.