Jak zaktualizować Pythona?

135

Mam wersję 2.7 zainstalowaną od początku 2012 roku. Nie mogę znaleźć konsensusu co do tego, czy powinienem całkowicie odinstalować i wyczyścić tę wersję przed zainstalowaniem najnowszej wersji.

"Miękkie" - usuwanie starych wersji? Trudne do usunięcia / wycierania starych wersji? Instalujesz od góry?

Widziałem gdzieś specjalny proces instalacji / aktualizacji wykorzystujący metodę „segmentacji” instalacji Pythona, zachowując różne wersje osobno i osobno, ale funkcjonalnie. Nie jestem pewien, czy jest to standardowy sposób, de facto.

Zastanawiam się też, czy Revo stanie się zbyt nadgorliwy i może powodować problemy z wymazywaniem wciąż potrzebnych pozostałości, takich jak zmienne środowiskowe / PATH.

(Win7 x64, 32-bitowy Python)

Coldblackice
źródło
1
2.7 jest nadal najnowszą wersją - przynajmniej w serii 2.x. 3.x jest niekompatybilny wstecz. jeśli chcesz zaktualizować do aktualnej wersji 2.7, po prostu zainstalowałem go od góry.
Eevee,

Odpowiedzi:

106
AKTUALIZACJA : 2018-07-06

Ten post ma już prawie 5 lat! Python-2.7 przestanie otrzymywać oficjalne aktualizacje z python.org w 2020 roku . Wydano również Python-3.7 . Sprawdź Python-Future, aby dowiedzieć się, jak dostosować kod Python-2 do Python-3. Aby zaktualizować Conda, dokumentacja zaleca teraz używanie conda update --allw każdym środowisku Conda do aktualizacji wszystkich pakietów i pliku wykonywalnego Pythona dla tej wersji. Ponadto, ponieważ zmienili nazwę na Anaconda, nie wiem, czy klucze rejestru systemu Windows są nadal takie same.

AKTUALIZACJA : 2017-03-24

Nie było żadnych aktualizacji Pythona (x, y) od czerwca 2015 roku, więc myślę, że można bezpiecznie założyć, że został porzucony.

AKTUALIZACJA : 2016-11-11

Jak komentuje @cxw poniżej , te odpowiedzi dotyczą tych samych wersji bitowych, a przez wersję bitową mam na myśli wersję 64-bitową i 32-bitową. Na przykład te odpowiedzi dotyczą aktualizacji z 64-bitowego Pythona-2.7.10 do 64-bitowego Pythona-2.7.11, czyli : tej samej wersji bitowej. Chociaż możliwe jest zainstalowanie razem dwóch różnych bitowych wersji Pythona, wymagałoby to trochę hakowania, więc zachowam to ćwiczenie dla czytelnika. Jeśli nie chcesz hakować, sugeruję, aby przełączając wersje bitowe, najpierw usunąć drugą wersję bitową.

AKTUALIZACJE : 2016-05-16
  • Anaconda i MiniConda mogą być używane z istniejącą instalacją Pythona, wyłączając opcje zmiany systemu Windows PATHi rejestru. Po wyodrębnieniu utwórz łącze symboliczne do condaw swoim binlub zainstaluj conda z PyPI. Następnie należy utworzyć kolejną dowiązania o nazwie conda-activateaby activatew folderze bin korzeń Anaconda / Miniconda. Teraz Anaconda / Miniconda jest jak Ruby RVM. Po prostu użyj, conda-activate rootaby włączyć Anaconda / Miniconda.
  • Portable Python nie jest już rozwijany ani utrzymywany.

TL; DR

  • Używając Anacondy lub minicondy , po prostu wykonaj, conda update --allaby zaktualizować każde środowisko Conda,
  • ta sama główna wersja oficjalnego Pythona ( np. 2.7.5), wystarczy zainstalować na starszej ( np. 2.7.4),
  • inna główna wersja oficjalnego Pythona ( np. 3.3), instaluj obok starych, ustaw ścieżki / skojarzenia, aby wskazywały na dominującą ( np. 2.7), skrót do innych ( np. w BASH $ ln /c/Python33/python.exe python3).

Odpowiedź zależy:

  1. Jeśli OP ma 2.7.x i chce zainstalować nowszą wersję 2.7.x, to

    • jeśli używasz instalatora MSI z oficjalnej strony Pythona , po prostu zainstaluj na starszej wersji, instalator wyświetli ostrzeżenie, że usunie i zastąpi starszą wersję; sprawdzenie „zainstalowanych programów” w „panelu sterowania” przed i po potwierdza, że ​​stara wersja została zastąpiona nową wersją; Nowsze wersje 2.7.x są kompatybilne wstecz, więc jest to całkowicie bezpieczne i dlatego IMHO wiele wersji 2.7.x nigdy nie powinno być konieczne.
    • jeśli budujesz ze źródeł, prawdopodobnie powinieneś zbudować w świeżym, czystym katalogu, a następnie wskazać ścieżkę do nowej kompilacji po przejściu wszystkich testów i masz pewność, że została pomyślnie zbudowana, ale możesz zachować starą wokół, ponieważ tworzenie ze źródła może czasami powodować problemy. Zobacz mój przewodnik dotyczący tworzenia języka Python x64 w systemie Windows 7 z zestawem SDK 7.0 .
    • jeśli instalujesz z dystrybucji takiej jak Python (x, y) , zobacz ich witrynę internetową. Python (x, y) został porzucony. Uważam, że aktualizacje można obsługiwać z poziomu Pythona (x, y) za pomocą menedżera pakietów, ale aktualizacje są również zawarte na ich stronie internetowej . Nie mogłem znaleźć konkretnego odniesienia, więc może ktoś inny może o tym porozmawiać. Podobnie do ActiveState i prawdopodobnie Enthought, Python (x, y) wyraźnie stwierdza, że ​​jest niekompatybilny z innymi instalacjami Pythona:

      Zaleca się odinstalowanie każdej innej dystrybucji Pythona przed zainstalowaniem Pythona (x, y)

    • Enthought Canopy używa MSI i zainstaluje albo do Program Files\Enthoughtlub home\AppData\Local\Enthought\Canopy\Appdla wszystkich użytkowników lub na użytkownika odpowiednio. Nowsze instalacje są aktualizowane za pomocą wbudowanego narzędzia do aktualizacji. Zobacz ich dokumentację .
    • ActiveState również używa MSI, więc nowsze instalacje mogą być instalowane na starszych. Zobacz ich uwagi dotyczące instalacji .

      Inne instalacje Pythona 2.7 W systemie Windows, ActivePython 2.7 nie może współistnieć z innymi instalacjami Pythona 2.7 (na przykład kompilacją Pythona 2.7 z python.org). Odinstaluj wszystkie inne instalacje Pythona 2.7 przed zainstalowaniem ActivePython 2.7.

    • Sage zaleca zainstalowanie go na maszynie wirtualnej i udostępnia plik obrazu Oracle VirtualBox, który można wykorzystać do tego celu. Uaktualnienia są obsługiwane wewnętrznie przez wydanie sage -upgradepolecenia.
    • Anacondę można zaktualizować za pomocą condapolecenia :

      conda update --all

      Anaconda / Miniconda pozwala użytkownikom tworzyć środowiska do zarządzania wieloma wersjami Pythona, w tym Python-2.6, 2.7, 3.3, 3.4 i 3.5. Główne instalacje Anaconda / Miniconda są obecnie oparte na języku Python-2.7 lub Python-3.5.

      Anaconda prawdopodobnie zakłóci wszelkie inne instalacje Pythona. Instalacja wykorzystuje instalator MSI. [ AKTUALIZACJA : 16.05.2016] Anaconda i Miniconda używają teraz .exeinstalatorów i zapewniają opcje wyłączania PATHzmian systemu Windows i rejestru.

      Dlatego Anaconda / Miniconda może być zainstalowana bez zakłócania istniejących instalacji Pythona w zależności od tego, jak została zainstalowana i opcji wybranych podczas instalacji. Jeśli .exeinstalator jest używany, a opcje zmiany systemu Windows PATHi Rejestru nie są wyłączone, wszelkie poprzednie instalacje Pythona zostaną wyłączone , ale zwykłe odinstalowanie instalacji Anaconda / Miniconda powinno przywrócić oryginalną instalację Pythona, może z wyjątkiem Python\PythonCorekluczy rejestru systemu Windows .

      Anaconda / Miniconda wprowadza następujące zmiany w rejestrze, niezależnie od opcji instalacji: HKCU\Software\Python\ContinuumAnalytics\z następujących klawiszy: Help, InstallPath, Modulesi PythonPath- oficjalna Python rejestruje te klawisze też, ale pod Python\PythonCore. Również informacje o odinstalowaniu są rejestrowane dla Anaconda \ Miniconda. Jeśli podczas instalacji nie zostanie wybrana opcja „Zarejestruj się w systemie Windows”, nie zostanie ona utworzona PythonCore, więc integracje, takie jak Python Tools for Visual Studio, nie są automatycznie wyświetlane jako Anaconda / Miniconda. Jeśli opcja rejestracji Anaconda / Miniconda jest włączona, myślę, że istniejące klucze rejestru systemu Windows w Pythonie zostaną zmienione i odinstalowanie prawdopodobnie ich nie przywróci.

    • Myślę , że aktualizacje WinPython mogą być obsługiwane przez panel sterowania WinPython .
    • PortablePython nie jest już rozwijany . Nie miał metody aktualizacji. Ewentualnie aktualizacje mogą być rozpakowane do katalogu, a następnie świeże App\lib\site-packagesi App\Scriptsmogą być kopiowane do nowej instalacji, ale jeśli to nie działa, a następnie ponownie zainstalować wszystkie pakiety mogą być konieczne. Użyj, pip listaby zobaczyć, jakie pakiety zostały zainstalowane i jakie są ich wersje. Niektóre zostały zainstalowane przez PortablePython. Służy easy_install pipdo instalowania pip, jeśli nie został zainstalowany.
  2. Jeśli OP ma 2.7.x i chce zainstalować inną wersję, np. <= 2.6.x lub> = 3.xx, wtedy zainstalowanie różnych wersji obok siebie jest w porządku. Musisz wybrać, którą wersję Pythona (jeśli w ogóle) chcesz powiązać z *.pyplikami, a którą chcesz umieścić na swojej ścieżce, chociaż powinieneś być w stanie skonfigurować powłoki z różnymi ścieżkami, jeśli używasz BASH . AFAIK 2.7.x jest wstecznie kompatybilny z 2.6.x, więc instalacje IMHO side-by-side nie są konieczne, jednak Python-3.xx nie jest wstecznie kompatybilny, więc moim zaleceniem byłoby umieszczenie Pythona-2.7 na swojej ścieżce i Python-3 może być wersją opcjonalną, tworząc skrót do jego pliku wykonywalnego o nazwie python3 (jest to typowa konfiguracja w systemie Linux). Oficjalna domyślna ścieżka instalacji Pythona w systemie Windows to

    • C: \ Python33 dla 3.3.x (najnowsze 2013-07-29)
    • C: \ Python32 dla 3.2.x
    • &do.
    • C: \ Python27 dla wersji 2.7.x (najnowsze 2013-07-29)
    • C: \ Python26 dla 2.6.x
    • &do.
  3. Jeśli OP nie aktualizuje Pythona, a jedynie aktualizuje pakiety, mogą chcieć zajrzeć do virtualenv, aby oddzielić różne wersje pakietów specyficznych dla ich projektów programistycznych. Pip to także świetne narzędzie do aktualizacji pakietów. Jeśli pakiety używają instalatorów binarnych, zwykle odinstalowuję stary pakiet przed zainstalowaniem nowego.

Mam nadzieję, że to wyjaśni wszelkie nieporozumienia.

Mark Mikofski
źródło
1
Hej Mark, mam pytanie dla początkujących. Czy uważasz, że aktualizacja z wersji 2.7.x do 3.3.x jest naprawdę ważna? Zaczynam używać Pythona i mam zainstalowaną starą wersję, ale od początku chciałem nauczyć się najnowszej wersji (chyba, że ​​są tylko bardzo drobne różnice). Jakie masz w tej sprawie powołanie? Dzięki za pomoc.
Matteo,
7
Użyłbym obu. Jeśli jesteś na MS Windows, pojawi się w folderze głównym C:\Python27, a C:\Python33jeśli jesteś na Mac, zobaczysz, /Library/Frameworks/Python/Versions/2.7.xa /Library/Frameworks/Python/Versions/3.3.xjeśli jesteś na Linuksie prawdopodobnie mają już zarówno zainstalować. Tradycją jest używanie Python-2.7 i dowiązanie symboliczne do pliku binarnego dla Python-3.3 do python33. Zobacz także Python2orPython3 i Python 2 vs Python 3 . Osobiście jestem zbyt leniwy, żeby przejść na 3.3.
Mark Mikofski
2
Dzięki za szczegółową odpowiedź! W wersji 2.7 instalacja na starszej wersji nie działała, gdy jedna była 32-bitowa, a druga 64-bitowa. Skończyło się na dwóch wpisach w "Programy i funkcje", oba wskazujące na C: \ Python27. Czy byłbyś skłonny dodać do swojej odpowiedzi, że ludzie powinni nadpisywać tylko 32 na 32 i 64 na 64? Dzięki!
cxw
1
@cxw dzięki za informację zwrotną. Jeśli chcesz mieć razem 32 i 64, są sposoby. Prawdopodobnie najłatwiej jest użyć czegoś, co nazywa się „admin” zainstalować w wersji 32-bitowej do C:\Python27_x86z wiersza poleceń: msiexec /a "python-2.7.11.msi" TARGETDIR="C:\Python27_x86" /qn /l*v python27_x86_install.log. Inną opcją jest budowanie ze źródeł lub wypróbowanie Bootstrap Python .
Mark Mikofski
1
Instalator MSI mówi, że zastąpi folder 2.7, jednak jeśli przechowujesz inne skrawki w folderze głównym 2.7, nie usunie ich;)
XXN
6

Najlepszym rozwiązaniem jest zainstalowanie różnych wersji Pythona w wielu ścieżkach.

na przykład. C: \ Python27 w wersji 2.7 i C: \ Python33 w wersji 3.3.0

Przeczytaj to, aby uzyskać więcej informacji: Jak uruchomić wiele wersji Pythona w systemie Windows

Wei Yen
źródło
Tak to robię. Używam zarówno 32-bitowych, jak i 64-bitowych wersji Pythona 2.7.xx i 3.5.xx oraz IronPython 2.7.xx. Używam Eclipse do programowania i wybieram ścieżkę Pythona podczas debugowania. Podczas uruchamiania skryptu po prostu ustawiam ścieżkę do wersji interpretera, której chcę użyć. Aktualizacja 3.5.0 do 3.5.3 oferuje prostą opcję aktualizacji w stosunku do nowej instalacji.
Bill Kidd
5
  • Oficjalne instalatory Python .msi mają na celu zastąpienie:

    • wszelkie wcześniejsze wydania mikro (w xyz , z to „mikro”), ponieważ gwarantuje, że są zgodne wstecz i binarnie
    • instalacja „migawka” (zbudowana ze źródeł) z dowolną wersją mikro
  • Instalator migawek został zaprojektowany w celu zastąpienia dowolnej migawki niższą wersją mikro.

(Zobacz odpowiedzialny kod dla 2.x , dla 3.x )

Wszelkie inne wersje niekoniecznie są kompatybilne i dlatego są instalowane obok już istniejącej. Jeśli chcesz odinstalować starą wersję, musisz to zrobić ręcznie. A także odinstaluj wszystkie moduły innych firm, które masz do tego:

  • Jeśli zainstalowałeś jakiekolwiek moduły z bdist_wininstpakietów (Windows .exe), odinstaluj je przed odinstalowaniem wersji lub deinstalator może nie działać poprawnie, jeśli ma niestandardową logikę
  • moduły zainstalowane z setuptools/, pipktóre znajdują się w, Lib\site-packagesmożna po prostu usunąć później
  • pakiety, które zainstalowałeś dla każdego użytkownika, jeśli takie istnieją, znajdują się w %APPDATA%/Python/PythonXY/site-packagesi podobnie mogą zostać usunięte
ivan_pozdeev
źródło
1

Zawsze instalowałem nową wersję na górze i nigdy nie miałem żadnych problemów. Upewnij się jednak, że ścieżka została zaktualizowana, aby wskazywała na nową wersję.

Zack
źródło
1
Kiedy instalujesz od góry, czy zachowuje zewnętrzne moduły, takie jak pygame, bs4, lxml itp., Które pobrałem?