Come aggiornare Python?


135

Ho installato la versione 2.7 dall'inizio del 2012. Non riesco a trovare alcun consenso sull'opportunità di disinstallare e cancellare completamente questa versione prima di installare l'ultima versione.

Vecchie versioni "morbide"? Rimozione / eliminazione definitiva delle versioni precedenti? Installazione sopra?

Ho visto da qualche parte uno speciale processo di installazione / aggiornamento che utilizza un metodo di "segmentazione" delle installazioni di Python, mantenendo diverse versioni separate e separate, ma funzionali. Non sono sicuro se questo è il modo standard, di fatto.

Mi chiedo anche se Revo diventa troppo zelante e potrebbe causare problemi con l'eliminazione dei resti ancora necessari, come le variabili ambiente / PATH.

(Win7 x64, 32-bit Python)


1
2.7 è ancora l'ultima versione, comunque nella serie 2.x. 3.x è incompatibile con le versioni precedenti. se vuoi aggiornare alla versione 2.7 attuale, installerei semplicemente sopra.
Eevee,

Risposte:


106
AGGIORNAMENTO : 06-07-2018

Questo post ha ormai quasi 5 anni! Python-2.7 smetterà di ricevere aggiornamenti ufficiali da python.org nel 2020 . Inoltre, è stato rilasciato Python-3.7 . Dai un'occhiata a Python-Future su come rendere il tuo codice Python-2 compatibile con Python-3. Per l'aggiornamento del conda, la documentazione ora consiglia di utilizzareconda update --all in ciascuno degli ambienti conda per aggiornare tutti i pacchetti e l'eseguibile Python per quella versione. Inoltre, poiché hanno cambiato il loro nome in Anaconda, non so se le chiavi di registro di Windows siano sempre le stesse.

AGGIORNARE : 24-03-2017

Non ci sono aggiornamenti a Python (x, y) da giugno 2015, quindi penso che sia sicuro supporre che sia stato abbandonato.

AGGIORNARE : 11-11-2016

Come sotto i commenti di @cxw di seguito , queste risposte sono per le stesse versioni di bit, e per versione di bit intendo 64 bit contro 32 bit. Ad esempio, queste risposte si applicherebbero all'aggiornamento da Python-2.7.10 a 64 bit a Python-2.7.11 a 64 bit, ovvero : la stessa versione di bit. Mentre è possibile installare due diverse versioni di bit di Python insieme, richiederebbe un po 'di hacking, quindi salverò l'esercizio per il lettore. Se non vuoi hackerare, suggerisco che se cambi versione bit, rimuovi prima l'altra versione bit.

AGGIORNAMENTI : 16/05/2016
  • Anaconda e MiniConda possono essere utilizzati con un'installazione Python esistente disabilitando le opzioni per modificare Windows PATHe Registro. Dopo l'estrazione, crea un link simbolico condanel tuo bino installa conda da PyPI. Quindi creare un link simbolico chiamato conda-activatea activatenella cartella principale bin Anaconda / Miniconda. Ora Anaconda / Miniconda è proprio come Ruby RVM. Basta usareconda-activate root per abilitare Anaconda / Miniconda.
  • Portable Python non viene più sviluppato o mantenuto.

TL; DR

  • Usando Anaconda o miniconda , quindi esegui semplicemente conda update --allper mantenere aggiornato ogni ambiente conda,
  • stessa versione principale di Python ufficiale ( ad es. 2.7.5), basta installare sul vecchio ( ad es. 2.7.4),
  • diverse versioni principali di Python ufficiale ( ad es. 3.3), installate fianco a fianco con vecchie, impostano percorsi / associazioni in modo che puntino a dominanti ( ad es. 2.7), scorciatoie verso altre ( ad es. in BASH $ ln /c/Python33/python.exe python3).

La risposta dipende:

  1. Se OP ha 2.7.xe desidera installare la versione più recente di 2.7.x, allora

    • se si utilizza il programma di installazione MSI dal sito Web ufficiale di Python , basta installarlo sulla versione precedente, il programma di installazione emetterà un avviso che rimuoverà e sostituirà la versione precedente; la ricerca nei "programmi installati" nel "pannello di controllo" prima e dopo conferma che la vecchia versione è stata sostituita dalla nuova versione; le versioni più recenti di 2.7.x sono retrocompatibili, quindi questo è completamente sicuro e quindi IMHO versioni multiple di 2.7.x non dovrebbero mai essere necessarie.
    • se costruisci dal sorgente, dovresti probabilmente compilare una directory nuova e pulita e quindi puntare il tuo percorso alla nuova build una volta che ha superato tutti i test e sei sicuro che sia stata compilata correttamente, ma potresti voler mantenere la vecchia costruire intorno perché la costruzione dalla fonte può occasionalmente avere problemi. Consulta la mia guida per la creazione di Python x64 su Windows 7 con SDK 7.0 .
    • se si installa da una distribuzione come Python (x, y) , consultare il sito Web. Python (x, y) è stato abbandonato. Credo che gli aggiornamenti possano essere gestiti da Python (x, y) con il loro gestore di pacchetti, ma gli aggiornamenti sono anche inclusi nel loro sito Web . Non sono riuscito a trovare un riferimento specifico, quindi forse qualcun altro può parlare con questo. Simile ad ActiveState e probabilmente Enthought, Python (x, y) afferma chiaramente che è incompatibile con altre installazioni di Python:

      Si consiglia di disinstallare qualsiasi altra distribuzione Python prima di installare Python (x, y)

    • Pensato che Canopy utilizza un MSI e verrà installato rispettivamente in Program Files\Enthoughto home\AppData\Local\Enthought\Canopy\Appper tutti gli utenti o per utente. Le installazioni più recenti vengono aggiornate utilizzando lo strumento di aggiornamento integrato. Vedi la loro documentazione .
    • ActiveState utilizza anche un MSI in modo da poter installare installazioni più recenti su quelle precedenti. Vedi le loro note di installazione .

      Altre installazioni di Python 2.7 Su Windows, ActivePython 2.7 non può coesistere con altre installazioni di Python 2.7 (ad esempio una build di Python 2.7 da python.org). Disinstallare qualsiasi altra installazione di Python 2.7 prima di installare ActivePython 2.7.

    • Sage consiglia di installarlo in una macchina virtuale e fornisce un file di immagine Oracle VirtualBox che può essere utilizzato a tale scopo. Gli aggiornamenti vengono gestiti internamente emettendo il sage -upgradecomando.
    • Anaconda può essere aggiornato utilizzando il condacomando :

      conda update --all

      Anaconda / Miniconda consente agli utenti di creare ambienti per gestire più versioni di Python tra cui Python-2.6, 2.7, 3.3, 3.4 e 3.5. Le installazioni root Anaconda / Miniconda sono attualmente basate su Python-2.7 o Python-3.5.

      Anaconda probabilmente interromperà qualsiasi altra installazione di Python. L'installazione utilizza il programma di installazione MSI. [ AGGIORNAMENTO : 16/05/2016] Anaconda e Miniconda ora utilizzano i programmi di .exeinstallazione e forniscono opzioni per disabilitare le PATHmodifiche di Windows e del Registro di sistema.

      Pertanto Anaconda / Miniconda può essere installato senza interrompere le installazioni Python esistenti a seconda di come è stato installato e delle opzioni selezionate durante l'installazione. Se .exeviene utilizzato il programma di installazione e le opzioni per modificare Windows PATHe Registro di sistema non sono disabilitate, eventuali precedenti installazioni di Python verranno disabilitate , ma la semplice disinstallazione dell'installazione di Anaconda / Miniconda dovrebbe ripristinare l'installazione di Python originale, tranne forse le Python\PythonCorechiavi del registro di Windows .

      Anaconda / Miniconda apporta le seguenti modifiche del Registro di sistema, indipendentemente dalle opzioni di installazione: HKCU\Software\Python\ContinuumAnalytics\con i seguenti tasti: Help, InstallPath, Modulese PythonPath- ufficiale di Python registra questi tasti troppo, ma sotto Python\PythonCore. Anche le informazioni di disinstallazione sono registrate per Anaconda \ Miniconda. A meno che non selezioni l'opzione "Registra con Windows" durante l'installazione, non viene creata PythonCore, quindi integrazioni come Python Tools per Visual Studio non vedono automaticamente Anaconda / Miniconda. Se l'opzione per registrare Anaconda / Miniconda è abilitata, penso che le tue chiavi esistenti del Registro di sistema di Python Windows saranno modificate e la disinstallazione probabilmente non le ripristinerà.

    • Penso che gli aggiornamenti di WinPython possano essere gestiti attraverso il Pannello di controllo di WinPython .
    • PortablePython non è più in fase di sviluppo . Non aveva un metodo di aggiornamento. Eventuali aggiornamenti potrebbero essere decompressi in una nuova directory e quindi App\lib\site-packagese App\Scriptspotrebbero essere copiati nella nuova installazione, ma se ciò non ha funzionato potrebbe essere necessario reinstallare tutti i pacchetti. Usa pip listper vedere quali pacchetti sono stati installati e le loro versioni. Alcuni sono stati installati da PortablePython. Utilizzare easy_install pipper installare pip se non è stato installato.
  2. Se OP ha 2.7.xe desidera installare una versione diversa, ad es. <= 2.6.xo> = 3.xx, l'installazione di versioni diverse affiancate va bene. Devi scegliere quale versione di Python (se presente) associare ai *.pyfile e quale vuoi sul tuo percorso, anche se dovresti essere in grado di impostare shell con percorsi diversi se usi BASH . AFAIK 2.7.x è retrocompatibile con 2.6.x, quindi non sono necessarie installazioni side-by-side IMHO, tuttavia Python-3.xx non è retrocompatibile, quindi la mia raccomandazione sarebbe di mettere Python-2.7 sul tuo percorso e avere Python-3 è una versione opzionale creando un collegamento al suo eseguibile chiamato python3 (questa è una configurazione comune su Linux). Il percorso di installazione predefinito ufficiale di Python su Windows è

    • C: \ Python33 per 3.3.x (ultimo 2013-07-29)
    • C: \ Python32 per 3.2.x
    • & C.
    • C: \ Python27 per 2.7.x (ultimo 2013-07-29)
    • C: \ Python26 per 2.6.x
    • & C.
  3. Se OP non sta aggiornando Python, ma semplicemente aggiornando i pacchetti, potrebbe voler esaminare virtualenv per mantenere separate le diverse versioni dei pacchetti specifici per i loro progetti di sviluppo. Pip è anche un ottimo strumento per aggiornare i pacchetti. Se i pacchetti utilizzano programmi di installazione binari, di solito disinstallo il vecchio pacchetto prima di installare quello nuovo.

Spero che questo chiarisca ogni confusione.


1
Ehi Mark, ho una domanda da principiante. Ritieni che in realtà sia importante eseguire l'aggiornamento da 2.7.xa 3.3.x? Sto iniziando a usare Python e ho installato la vecchia versione, ma da quando ho iniziato volevo imparare la versione più recente (a meno che non ci siano solo differenze minime). Qual è la tua chiamata su questo? Grazie per l'aiuto.
Matteo

7
Vorrei usare entrambi. Se sei su MS Windows, ti troverai nella cartella principale C:\Python27e C:\Python33, se sei su Mac, vedrai /Library/Frameworks/Python/Versions/2.7.xe /Library/Frameworks/Python/Versions/3.3.xe se sei su Linux probabilmente hai già entrambi installato. La tradizione è usare Python-2.7 e link simbolico al binario per Python-3.3 python33. Vedi anche Python2orPython3 e Python 2 vs Python 3 . Personalmente sono troppo pigro per passare a 3.3.
Mark Mikofski,

2
Grazie per la risposta dettagliata! Con 2.7, l'installazione su vecchio non funzionava quando uno era a 32 bit e uno a 64 bit. Ho finito con due voci in "Programmi e funzionalità", entrambi che puntavano a C: \ Python27. Saresti disposto ad aggiungere alla tua risposta che la gente dovrebbe solo sovrascrivere 32 con 32 e 64 con 64? Grazie!
Cxw,

1
@cxw grazie per il feedback. Se vuoi avere 32 e 64 insieme, ci sono modi. Probabilmente il più semplice è quello di utilizzare ciò che è chiamato un "admin" install della versione a 32 bit in C:\Python27_x86dalla riga di comando: msiexec /a "python-2.7.11.msi" TARGETDIR="C:\Python27_x86" /qn /l*v python27_x86_install.log. Un'altra opzione è quella di compilare dal sorgente o provare Bootstrap Python .
Mark Mikofski,

1
Il programma di installazione di MSI afferma che sostituirà la cartella 2.7, tuttavia, se si memorizzano altri script nella cartella radice 2.7, non li eliminerà;)
XXN

6

La soluzione migliore è installare le diverse versioni di Python in più percorsi.

per esempio. C: \ Python27 per 2.7 e C: \ Python33 per 3.3.

Leggi questo per maggiori informazioni: Come eseguire più versioni di Python su Windows


Questo è come lo faccio. Corro entrambe le versioni a 32 e 64 bit di python 2.7.xx e 3.5.xx e IronPython 2.7.xx. Uso Eclipse per lo sviluppo e scelgo il percorso python durante il debug. Quando eseguo uno script, ho semplicemente impostato il percorso per la versione dell'interprete che desidero utilizzare. L'aggiornamento da 3.5.0 a 3.5.3 offre una semplice opzione di aggiornamento rispetto a una nuova installazione.
Bill Kidd,

5
  • Gli installer Pmson .msi ufficiali sono progettati per sostituire:

    • qualsiasi precedente micro release (in xyz , z è "micro") perché sono garantite per essere retrocompatibili e binarie
    • un'installazione "istantanea" (costruita dal sorgente) con qualsiasi versione micro
  • Un programma di installazione di snapshot è progettato per sostituire qualsiasi snapshot con una versione micro inferiore.

(Vedi il codice responsabile per 2.x , per 3.x )

Qualsiasi altra versione non è necessariamente compatibile e viene quindi installata accanto a quella esistente. Se desideri disinstallare la versione precedente, dovrai farlo manualmente. E anche disinstallare eventuali moduli di terze parti che hai avuto per esso:

  • Se hai installato moduli dai bdist_wininstpacchetti (Windows .exe), disinstallali prima di disinstallare la versione o il programma di disinstallazione potrebbe non funzionare correttamente se ha una logica personalizzata
  • moduli installati con setuptools/pip che risiedono Lib\site-packagespossono essere eliminati in seguito
  • i pacchetti installati per utente, se presenti, risiedono %APPDATA%/Python/PythonXY/site-packagese possono anche essere eliminati

1

Ho sempre installato la nuova versione in cima e non ho mai avuto problemi. Assicurati che il tuo percorso sia aggiornato per puntare alla nuova versione.


1
Quando si installa sopra, mantiene i moduli esterni come pygame, bs4, lxml, ecc. Che ho scaricato?
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.