Come aggiorno l'installazione di Python in Windows 10?


112

Ho un Python 2.7.11 installato su una delle mie stazioni LAB. Vorrei aggiornare Python almeno a 3.5.

Come dovrei farlo? Devo preferire disinstallare completamente 2.7.11 e installare quello nuovo? C'è un modo per aggiornarlo? Un aggiornamento è una buona idea?


Forse questo vecchio post può aiutarti? stackoverflow.com/questions/15102943/how-to-update-python Br.
MikeL

python2 e python3 dovrebbero essere trattati come linguaggi diversi, come C # è diverso da C ++
WhatsThePoint

Risposte:


97

Ogni versione minore di Python, ovvero qualsiasi versione 3.xe 2.x, verrà installata fianco a fianco con altre versioni sul tuo computer. Solo le versioni patch aggiorneranno le installazioni esistenti.

Quindi, se vuoi mantenere il tuo Python 2.7 installato in giro, lascialo e installa una nuova versione usando il programma di installazione. Se vuoi sbarazzarti di Python 2.7, puoi disinstallarlo prima o dopo aver installato una versione più recente - non c'è differenza in questo.

Le attuali installazioni di Python 3 vengono fornite con il programma di py.exeavvio, che per impostazione predefinita è installato nella directory di sistema. Questo lo rende disponibile dal PATH, quindi puoi eseguirlo automaticamente da qualsiasi shell semplicemente usando pyinvece che pythoncome comando. Questo evita di dover mettere tu stesso l'installazione corrente di Python in PATH. In questo modo, puoi facilmente avere più installazioni di Python fianco a fianco senza che interferiscano tra loro. Durante l'esecuzione, usa py script.pyinvece di python script.pyusare il programma di avvio. È inoltre possibile specificare una versione utilizzando, ad esempio, py -3o py -3.6per avviare una versione specifica, altrimenti il ​​programma di avvio utilizzerà l'impostazione predefinita corrente (che di solito sarà l'ultima 3.x).

Utilizzando il programma di avvio, puoi anche eseguire script Python 2 (che spesso sono sintassi incompatibili con Python 3), se decidi di mantenere la tua installazione di Python 2.7. Basta usare py -2 script.pyper avviare uno script.


Per quanto riguarda i pacchetti PyPI, ogni installazione di Python viene fornita con la propria cartella in cui sono installati i moduli. Quindi, se installi una nuova versione e desideri utilizzare i moduli installati per una versione precedente, dovrai prima installarli per la nuova versione. Le versioni attuali del programma di installazione offrono anche l'installazione pip; è abilitato per impostazione predefinita, quindi lo hai già pipper ogni installazione. A meno che tu non aggiunga esplicitamente un'installazione di Python al PERCORSO, non puoi semplicemente usarlo pip. Fortunatamente, puoi anche usare semplicemente il programma di py.exeavvio per questo: py -m pipcorre pip. Quindi, ad esempio, per installare Beautiful Soup per Python 3.6, potresti eseguire py -3.6 -m pip install beautifulsoup4.


1
Come consiglieresti di farlo su una stazione che sto attualmente utilizzando per lo sviluppo di script? A proposito, ho un 3.5.2 (Windows 7 a 64 bit)
Moshe S.

1
Basta installare la nuova versione fianco a fianco. Non è necessario rimuovere la vecchia versione. Avere la vecchia versione potrebbe persino aiutarti a migrare gli script esistenti da Python 2 a Python 3, in modo da poter ancora eseguire quelli originali.
colpisci il

1
Il programma di installazione ti darà un'opzione per impostare il PERCORSO per te, quindi potresti non aver bisogno di farlo manualmente. E sì, il tuo IDE deve essere aggiornato.
colpisci il

1
anche py -3.7-64opy -3.7-32
noobninja

1
Nota: py è il Python Launcher per Windows . Oppure vedi PEP 397 che lo definisce. Non viene installato per Linux / Mac.
LightCC

39

Installazione / aggiornamento di Python utilizzando Chocolatey Windows Package Manager

Supponiamo che tu abbia Python 2.7.16:

    C:\Windows\system32>python --version
    python2 2.7.16

... e desideri eseguire l'aggiornamento alla versione 3.xy (ora attuale). C'è un modo semplice per installare un'installazione parallela di Python 3.xy utilizzando uno strumento di gestione dei pacchetti di Windows.

Ora che Windows moderno ha la gestione dei pacchetti, proprio come le distribuzioni Debian Linux hanno apt-get, e RedHat ha dnf: possiamo metterlo al lavoro per noi! Si chiama Chocolatey .

Cos'è Chocolatey?

Chocolatey è uno strumento da riga di comando con script basato su .NET 4.0 e il gestore di pacchetti nuget integrato in Visual Studio.

Se vuoi conoscere Chocolatey e perché usarlo, cosa che alcuni qui leggendo potrebbero trovare particolarmente utile, vai su https://chocolatey.org/docs/why

Installazione di Chocolatey

Per ottenere Chocolatey Package Manager, segui un processo descritto su https://chocolatey.org/docs/installation#installing-chocolatey ,

Te lo riassumerò qui. Esistono fondamentalmente due opzioni: utilizzando il prompt di cmd o utilizzando il prompt di PowerShell.

CMD Prompt Chocolatey Installation

Avvia un prompt dei comandi amministrativo . Su Windows 10, per fare questo:

  • Windows+R
  • Digita cmd
  • Premi ctrl+ shift+Enter

Se non disponi dei diritti di amministratore sul sistema, vai al sito Web Chocolatey . Potresti non essere completamente sfortunato e puoi eseguire un'installazione locale limitata, ma non ne parlerò qui.

  • Copia la stringa di seguito nel prompt dei comandi e digita Invio:
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

Chocolatey verrà scaricato e installato per te come di seguito:

Getting latest version of the Chocolatey package for download.
Getting Chocolatey from https://chocolatey.org/api/v2/package/chocolatey/0.10.11.
Downloading 7-Zip commandline tool prior to extraction.
Extracting C:\Users\blahblahblah\AppData\Local\Temp\chocolatey\chocInstall\chocolatey.zip to C:\Users\blahblahblah\AppData\Local\Temp\chocolatey\chocInstall...
Installing chocolatey on this machine
Creating ChocolateyInstall as an environment variable (targeting 'Machine')
  Setting ChocolateyInstall to 'C:\ProgramData\chocolatey'
WARNING: It's very likely you will need to close and reopen your shell
  before you can use choco.
Restricting write permissions to Administrators
We are setting up the Chocolatey package repository.
The packages themselves go to 'C:\ProgramData\chocolatey\lib'
  (i.e. C:\ProgramData\chocolatey\lib\yourPackageName).
A shim file for the command line goes to 'C:\ProgramData\chocolatey\bin'
  and points to an executable in 'C:\ProgramData\chocolatey\lib\yourPackageName'.

Creating Chocolatey folders if they do not already exist.

WARNING: You can safely ignore errors related to missing log files when
  upgrading from a version of Chocolatey less than 0.9.9.
  'Batch file could not be found' is also safe to ignore.
  'The system cannot find the file specified' - also safe.
chocolatey.nupkg file not installed in lib.
 Attempting to locate it from bootstrapper.
PATH environment variable does not have C:\ProgramData\chocolatey\bin in it. Adding...
WARNING: Not setting tab completion: Profile file does not exist at 'C:\Users\blahblahblah\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'.
Chocolatey (choco.exe) is now ready.
You can call choco from anywhere, command line or powershell by typing choco.
Run choco /? for a list of functions.
You may need to shut down and restart powershell and/or consoles
 first prior to using choco.
Ensuring chocolatey commands are on the path
Ensuring chocolatey.nupkg is in the lib folder

O Uscire prompt CMD o digitare il seguente comando per ricaricare le variabili di ambiente:

refreshenv

Installazione di PowerShell Chocolatey

Se preferisci PowerShell al prompt di cmd, puoi farlo direttamente da lì, tuttavia dovrai dire a PowerShell di eseguire con un criterio di esecuzione dello script appropriato per farlo funzionare. Su Windows 10, il modo più semplice che ho trovato per farlo è digitare quanto segue nella barra di ricerca di Cortana accanto al pulsante Windows:

PowerShell.exe

Quindi, fai clic con il pulsante destro del mouse sulla scelta "Migliore corrispondenza" nel menu che si apre e seleziona "Esegui come amministratore"

Ora che sei in PowerShell, si spera in esecuzione con i privilegi di amministratore, esegui quanto segue per installare Chocolatey:

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

PowerShell scaricherà Chocolatey per te e avvierà l'installazione. Ci vogliono solo pochi istanti. Sembra esattamente come l'installazione di CMD, salvo forse del testo colorato di fantasia.

Sia Exit PowerShell o digitare il seguente comando per ricaricare le variabili di ambiente:

refreshenv

Aggiornamento di Python

Il comando choco è lo stesso sia che si utilizzi PowerShell o il prompt di cmd. Avvia il tuo preferito usando le istruzioni come sopra. Userò il prompt cmd dell'amministratore:

C:\WINDOWS\system32>choco upgrade python -y

In sostanza, chocolatey ti dirà "Ehi, Python non è installato" dato che vieni dalla 2.7.xe tratta la versione 2.7 come completamente separata. E ' solo sta per darvi la versione più recente, 3.xy (come di questa scrittura, 3.7.2, ma che cambierà in pochi mesi):

Chocolatey v0.10.11
Upgrading the following packages:
python
By upgrading you accept licenses for the packages.
python is not installed. Installing...

python3 v3.x.y [Approved]
python3 package files upgrade completed. Performing other installation steps.
Installing 64-bit python3...
python3 has been installed.
Installed to: 'C:\Python37' 
  python3 can be automatically uninstalled.
Environment Vars (like PATH) have changed. Close/reopen your shell to
 see the changes (or in powershell/cmd.exe just type `refreshenv`).
 The upgrade of python3 was successful.
  Software installed as 'exe', install location is likely default.

python v3.x.y [Approved]
python package files upgrade completed. Performing other installation steps.
 The upgrade of python was successful.
  Software install location not explicitly set, could be in package or
  default install location if installer.

Chocolatey upgraded 2/2 packages.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

O uscire dal cmd / Powershell rapido e reimmetterla, o uso refreshenv digitare py --version

C:\Windows\System32>refreshenv
Refreshing environment variables from registry for cmd.exe. Please wait...Finished..

C:\Windows\system32>py --version
Python 3.7.2

Nota che l'installazione di Python più recente ora avrà il sopravvento quando digiti Python dalla riga di comando. È possibile eseguire entrambe le versioni utilizzando i seguenti comandi:

py -2
Python 2.7.16 (v2.7.16:413a49145e, Mar  4 2019, 01:37:19) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

C:\>py -3
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>exit()
C:\>

Da qui ti suggerisco di utilizzare l' utility Python pip per installare tutti i pacchetti di cui hai bisogno. Ad esempio, supponiamo che tu voglia installare Flask. I comandi seguenti prima aggiornano pip, quindi installano Flask

C:\>py -3 -m pip install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/d8/f3/413bab4ff08e1fc4828dfc59996d721917df8e8583ea85385d51125dceff/pip-19.0.3-py2.py3-none-any.whl (1.4MB)
    100% |████████████████████████████████| 1.4MB 1.6MB/s
Installing collected packages: pip
  Found existing installation: pip 18.1
    Uninstalling pip-18.1:
      Successfully uninstalled pip-18.1
Successfully installed pip-19.0.3

c:\>py -3 -m pip install Flask

... farà il trucco. Buon Pythoning!


La versione breve della risposta è installare Chocolatey e quindi refreshenv dal prompt dei comandi, quindi eseguire choco install python installerà l'ultima versione di python. Esegui nuovamente refreshenv nel cmd e dovresti eseguire l'ultimo python dal tuo cmd.
Sebastian il

Ottenere questo errore in CMD e POWERSHELL Eccezione durante la chiamata "DownloadString" con "1" argomento / i: "La connessione sottostante è stata chiusa: si è verificato un errore imprevisto durante un invio." Alla riga: 1 carattere: 104 + Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient) .DownloadString <<<< (' chocolatey.org/install.ps1' )) + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: DotNetMethodException
trustory

Ho Windows 7 qualsiasi aiuto su come aggiornare a Python 3 da Python2 sembra che chocoaltely non funzioni.
fiduciario

39

Se stai aggiornando qualsiasi versione 3.xy alla versione 3.xz (patch) di Python, vai alla pagina dei download di Python per ottenere l'ultima versione e avviare l'installazione. Dato che hai già installato Python sulla tua macchina, il programma di installazione ti chiederà "Aggiorna ora". Fare clic su quel pulsante e sostituirà la versione esistente con una nuova. Dovrai anche riavviare un computer dopo l'installazione.

inserisci qui la descrizione dell'immagine

Se stai aggiornando da 3.x a 3.y (minore), ti verrà chiesto "Installa ora". In questo caso, non stai aggiornando, ma stai installando una nuova versione di Python. Puoi avere più di una versione installata sulla tua macchina. Si troveranno in directory diverse. Quando hai più di una versione di Python sulla tua macchina, dovrai usare py lanucher per avviare una versione specifica di Python.

Per esempio:

py -3,7

o

py -3,8

Assicurati di aver installato py launcher sulla tua macchina. Verrà installato automaticamente se si utilizzano le impostazioni predefinite del programma di installazione di Windows. Puoi sempre controllarlo se fai clic sul link "Personalizza installazione" nella finestra di installazione.

Se hai diverse versioni di Python installate sulla tua macchina e hai un progetto che utilizza la versione precedente di Python usando l'ambiente virtuale, ad esempio (venv), puoi aggiornare Python solo in quel venv usando:

python -m venv - aggiorna "il percorso del tuo ambiente virtuale"

Ad esempio, ho Python 3.7 nel mio ambiente virtuale ./venv e vorrei aggiornare venv a Python 3.8, farei quanto segue

python -m venv --upgrade ./venv


1
@ MosheS. Puoi ottenere un elenco di pacchetti obsoleti utilizzando il seguente comando: pip list --outdated e quindi aggiornare ciascun pacchetto tramite python -m pip install --upgrade <your package>
Vlad Bezden

5
Passando da 3.7.2 a 3.7.4 (64 bit) su Windows 10 non vedo questo, vedo "Installa ora" dove vedi "Aggiorna ora"
dumbledad

3
Sono passato dalla 3.7.3 alla 3.7.5 e ho ricevuto il messaggio "Aggiorna ora". Se provassi ad aggiornare da 3.7.3 a 3.8, otterrei "Installa ora".
Tiago Martins Peres 李大仁

1
@Suncatcher hai ragione, questo è quello che ho descritto nella sezione "Se vuoi aggiornare da 3.xa 3.y allora ...". Si prega di leggere quanto sopra.
Vlad Bezden

1
@Suncatcher, grazie per il feedback. Ho aggiornato la descrizione.
Vlad Bezden

4

Python 2.x e Python 3.x sono diversi. Se desideri scaricare una versione più recente di Python 2, puoi semplicemente scaricare e installare la versione più recente.

Se desideri installare Python 3, puoi installare Python 3 separatamente, quindi modificare il percorso di Python 2.x in Python 3.x in Pannello di controllo> Tutti gli elementi del pannello di controllo> Sistema> Impostazioni di sistema avanzate> Variabili d'ambiente.


Preferisco rimuovere completamente Python 2.7.11 poiché non ho intenzione di supportarlo. Quindi dovrei rimuoverlo completamente. Giusto ? I "Programmi e funzionalità" non mostravano Python quindi non so come rimuoverlo. Dovrei usare pip e come? È una buona idea eliminare solo la cartella Python? E per quanto riguarda tutti i vecchi pacchetti che sono stati installati con esso (se ce ne fossero), come posso disinstallarli anche io?
Moshe S.

@MosheS. Non penso che ci voglia molto spazio, ma se vuoi ripulire, allora con tutti i mezzi. Dovrebbero essere tutti nella stessa cartella, probabilmente puoi disinstallarli dal pannello di controllo Programmi e funzionalità. Entrambi i miei Python 2.7 e 3.4 sono lì. La disinstallazione da lì rimuoverà tutti i pacchetti Se davvero non riesci a trovarlo, puoi provare a eliminare l'intera cartella. Quando scarichi Python 3 e se non funziona, vai a modificare il percorso come ho risposto sopra, molto probabilmente sarebbe il problema principale, se presente.
Julian Chan


-1

Il modo più semplice per installare l'ultima versione di Python (se hai disinstallato altre versioni) è digitare Pythonin PowerShell.

Questo aprirà il Microsoft Store e fai clic sul Getpulsante.

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.