Come eseguire il downgrade di Python da 3.7 a 3.6


100

Sto cercando di installare tensorflow ma necessita di un'installazione di Python 3.6 e ho installato solo Python 3.7. Ho provato a cambiare usando brew e pyenv ma non funziona.

Qualcuno conosce un modo per risolvere questo problema?


4
Ti consiglio di usare Anaconda . Quindi crea un nuovo ambiente per ogni nuovo progetto e attivalo prima dell'uso. Nel tuo caso, conda create -n myenv python=3.6esource activate myenv
Canh


1
Aggiorna tensorflow. Tensorflow 1.14 e 1.15 supportano Python 3.7 (e versioni precedenti) e tensorflow 2.2 supporta Python 3.8
Boris

Risposte:


40
$ brew unlink python
$ brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/e128fa1bce3377de32cbf11bd8e46f7334dfd7a6/Formula/python.rb
$ brew switch python 3.6.5
$ pip install tensorflow

2
Funziona benissimo ma suggerirei prima di pip install tensorflowcreare un virtualenv o un conda env, quindi attivarlo e infine utilizzarepip install tensorflow
Diego Aguado

Puoi saltare le prime due righe se avevi questa versione di Python prima e l'hai aggiornata a una versione superiore (e non hai usato il $ brew cleanupcomando)
Mykola Zotko

3
Cos'è la birra? Non posso usare apt?
Jamie Hutber

@JamieHutber brew.sh è un gestore di pacchetti originariamente creato per macOS, ma oggigiorno supporta anche Linux, vedi docs.brew.sh/Homebrew-on-Linux . Se devi usarlo apt, puoi provare ad aggiungere il deadsnakesPPA che racchiude le versioni precedenti di python: launchpad.net/~deadsnakes/+archive/ubuntu/ppa , ma funziona solo sulle versioni di Ubuntu con supporto a lungo termine (LTS) , che sono 14.04, 16.04, 18.04 e 20.04 mentre scrivo questo commento nel 2020.
Boris

Attento. Questo può rovinare tutto e non aggiustare nulla
Josh Wolff

32

Se stai lavorando con Anaconda, allora

conda install python=3.5.0
# or maybe 
conda install python=2.7.8
# or whatever you want....

potrebbe funzionare.


Questo ha funzionato e ha risolto il mio problema. Questo non solo ha installato la versione precedente di Python, ma ha anche effettuato il downgrade della versione.
carica il

3
Qualche altra soluzione senza usare condaper Linux?
Dentrax

2
Capisco UnsatisfiableError:The following specifications were found to be in conflict: - python=3.5.0 - ssl_match_hostname -> python[version='>=2.7,<2.8.0a0'] -> readline=7 - ssl_match_hostname -> python[version='>=2.7,<2.8.0a0'] -> tk=8.6
MrMartin

13

creare un ambiente virtuale, installare quindi passare a python 3.6.5

$ conda create -n tensorflow python=3.7
$ conda activate tensorflow
$ conda install python=3.6.5
$ pip install tensorflow

attivare l'ambiente quando si desidera utilizzare tensorflow



7

Crea un ambiente virtuale Python usando conda, quindi installa tensorflow:

$ conda create -n [environment-name] python=3.6
# it may ask for installing python-3.6 if you don't have it already. Type "y" to proceed...
$ activate [environment-name]
$ pip install tensorflow

D'ora in poi, puoi attivare l'ambiente ogni volta che vuoi usare tensorflow.

Se non hai il gestore di pacchetti conda, scaricalo da qui: https://www.anaconda.com/distribution


Ciao @Seyed, ho lo stesso problema, il mio spyder predefinito si apre con 3.7, anche se apro gli strumenti-> preferenze nel mio ambiente conda python 3.6.9, come passare a spyder, il navigatore anaconda non mostra il lancio per spyder?
hanzgs

6

Ecco un riepilogo canonico che riassume diverse soluzioni per la varietà di sistemi operativi su cui Python gira. Quelle che seguono sono le possibilità per Microsoft Windows , Linux , macOS e Misc .

Come accennato, queste sono solo possibilità - in nessun modo pretendo di avere un elenco completo di sorta.


Microsoft Windows

opzione 1

In generale, si consiglia di utilizzare ambienti virtuali (consiglio vivamente di guardare la documentazione ufficiale di Python ). Con questo approccio, puoi facilmente impostare versioni di Python specifiche del progetto (così come le librerie). Facilmente gestibile e la parte migliore: ci sono molti tutorial su Internet su come affrontare questo:

1.) Apri il prompt dei comandi ("cmd") e inserisci pip install virtualenv.

2.) Installa la versione Python desiderata tramite https://www.python.org/downloads/release; Ricorda: non aggiungere aPATH !

3.) Digita nel prompt dei comandi:, virtualenv \path\to\env -p \path\to\python_install.exementre \path\to\envsarà il percorso in cui sarà il tuo ambiente virtuale e \path\to\python_install.exequello in cui risiede la tua versione di Python appena (presumibilmente) installata.

4.) Fatto! Ora hai un ambiente virtuale configurato! Ora, per attivare l'ambiente virtuale, esegui il file batch che si trova all'interno del file \path\to\env\Scripts\activate.bat. (vedi questo sito web o una guida ufficiale di Python )

opzione 2

L'opzione di base sarebbe disinstallare la versione indesiderata di Python e reinstallare quella preferita da https://www.python.org/downloads/ . Per rimuovere la "vecchia" versione vai su Control Panel-> "Uninstall a program"-> Search for "Python" -> Right-click on the Python name-> Uninstall. Tieni presente che Python di solito ha una variabile PATH memorizzata, quindi dovresti rimuoverla anche tu - Controlla i seguenti collegamenti per questo:

Ora ricontrolla se ci sono file rimanenti in cui era archiviato Python. Di solito, si possono trovare tutti i file Python alle due C:\Program Files (x86)\Pythonxx, C:\Users\username\AppData\Local\Programs\Pythonxxo di C:\Pythonxxo tutti loro. Potresti averlo installato in un'altra directory: controlla dove si trovava una volta.

Ora dopo la disinstallazione basta reinstallare la versione desiderata andando nella pagina di download e seguire la consueta procedura di installazione. Non entrerò nei dettagli su come installare Python. . Infine, potresti verificare quale versione è attualmente installata aprendo il prompt dei comandi e digitando python -V.

Opzione 3

Questo approccio è abbastanza simile al secondo: in pratica disinstalli il vecchio e lo sostituisci con la tua versione preferita. L'unica cosa che cambia la parte relativa a come disinstallare la distribuzione Python indesiderata: è sufficiente eseguire il programma di installazione di Python3 che hai utilizzato originariamente per installare Python (di solito è memorizzato nella tua directory Python come menzionato sopra; per ulteriore assistenza controlla questo ). Lì hai un'opzione per repair or uninstall, procedere scegliendo uninstalle seguire i passaggi forniti tramite il programma di disinstallazione.

Indipendentemente da come disinstalli Python (ci sono molte risorse su questo argomento, ad esempio questa domanda di Stack Overflow o un thread problematico di un utente con il nome di Vincent Tang pubblicato sul sito di Stack Exchange Super User, ecc.), Reinstalla semplicemente il desiderato Versione Python seguendo i passaggi menzionati in Option 2.

Opzione 4

L'opzione 4 riguarda Anaconda. Fare riferimento a questo sito su come installare Anaconda su Windows. Step 9è importante in quanto non si desidera installarlo come Python predefinito: si desidera eseguire più versioni di Python :

Scegli se registrare Anaconda come Python predefinito. A meno che non si preveda di installare ed eseguire più versioni di Anaconda o più versioni di Python, accettare l'impostazione predefinita e lasciare selezionata questa casella.

Segui il tutorial ufficiale che ho collegato sopra.

Una volta fatto, puoi creare i seguenti comandi individualmente nel prompt di anaconda: Per sovrascrivere la versione di python predefinita , usa il sistemaconda install python=3.6 o per creare un ambiente virtuale, vai avanti e usa conda create -n $PYTHON36_ENV_NAME python=3.6 anacondamentre $PYTHON36_ENV_NAMEè il nome personalizzato che puoi impostare. Credito a cui è dovuto il credito: l'utente @CermakM da questo thread ha fortemente influenzato questo frammento.

Nella mia ricerca ho riscontrato un sacco di utili thread Stack Overflow: potresti verificarli se segui la strada difficile con Anaconda:

Opzione 5

Quello che segue non è un downgrade in senso classico, anche se per completezza ho deciso di menzionare anche questo approccio. Su Windows puoi anche eseguire più versioni di Python: un famigerato thread su StackOverflow si occupa di questa domanda, quindi ti rimando cortesemente a per ulteriori scopi di lettura.


Linux

opzione 1

Abbastanza analogo alla terza opzione per Windows, ti consiglio vivamente di utilizzare un ambiente virtuale come Anaconda. Anaconda - o short conda - è disponibile anche su Linux. Controlla la documentazione ufficiale di installazione qui . Ancora una volta questo thread è altamente consigliato su come sovrascrivere una versione di Python, rispettivamente su come creare un ambiente specifico con la versione di Python desiderata.

opzione 2

Un altro ambiente virtuale altamente consigliato è Pyenv. L'utente @Sawan Vaidya ha descritto in questa domanda Stack Overflow su come eseguire l' upgrade o il downgrade di una versione di Python con l'aiuto di Pyenv. Puoi impostare una versione di Python a livello globale o creare un ambiente locale, entrambi spiegati nel thread menzionato.

Opzione 3

Un altro utente, ovvero @Jeereddy , ha suggerito di utilizzare il sistema di gestione dei pacchetti software Homebrew. Ha spiegato accuratamente questa opzione in questa domanda attuale :

$ brew unlink python
$ brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/e128fa1bce3377de32cbf11bd8e46f7334dfd7a6/Formula/python.rb
$ brew switch python 3.6.5

Opzione 5

Non c'è bisogno di reinventare la ruota: questo thread è pieno di tanti bellissimi approcci di corsa come quello di @Sidharth Taneja .

  1. Scarica la versione di Python desiderata da https://www.python.org/downloads/release e installala come file normal package.
  2. Correre cd /Library/Frameworks/Python.framework/Version
  3. Esegui lsper elencare tutte le versioni di Python installate
  4. Esegui sudo rm -rf 3.7, rimuovendo Python versione 3.7 - può essere ripetuto per qualsiasi versione desideri eliminare
  5. Controlla python3 -v, dovrebbe visualizzare la versione che originariamente volevi installare

Opzione 6

Che miniera d'oro è questo filo ! Come @nondetermistic ha descritto in modo approfondito (link diretto al suo post ):

Installa il codice sorgente Python così com'è:

#Taken Python 3.6 as an example
$ mkdir /home/<user>/python3.6
$ ./configure --prefix=/home/<user>/python3.6/
$ make altinstall

Ora sei in grado di aggiungere sia la versione scaricata ( /home/<user>/python3.6/bin) per PATHoltre che libper LD_LIBRARY_PATHo semplicemente creare un ambiente virtuale: /home/<user>/python3.6/bin/python3.6 -m venv env-python3.6. Una soluzione molto semplice ed estetica per eseguire più versioni di Python sul tuo sistema.


Mac OS

opzione 1

Usando pyenvcon Homebrew- credito a @Shayan con la sua risposta qui :

1.) Installazione pyenvcon Homebrew:

brew update
brew install pyenv

2.) Clonazione del repository GitHub per ottenere l'ultima pyenvversione:

 git clone https://github.com/pyenv/pyenv.git ~/.pyenv

3.) Definire le variabili d'ambiente come segue

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

4.) Riavviare la shell in modo che le PATHmodifiche funzionino

exec "$SHELL"

5.) Verifica delle versioni di Python disponibili

pyenv install --list

6.) Installazione della versione Python desiderata, ad esempio 3.6

pyenv install 3.6

7.) Impostandolo a livello globale ( puoi anche andare avanti e usarlo solo in un determinato ambiente )

pyenv global 3.6

8.) Controlla la versione di Python che il sistema sta usando - la tua versione desiderata / downgrade dovrebbe essere visualizzata qui.

python3 --version

opzione 2

Simile agli approcci precedenti, puoi scaricare Anaconda anche su macOS. Per una guida all'installazione, fare clic qui . L'utilizzo è praticamente la stessa come ho già descritto nella Option 4della Windowsguida. Si prega di controllare sopra.

Altre opzioni

In questo caso sta diventando piuttosto ripetitivo. Ti suggerisco gentilmente di controllare le seguenti risorse per ulteriori letture:


Misc

Durante la scrittura di questo post ho avuto il problema di non sapere dove tracciare la linea. Quando si cercano i sistemi operativi attualmente supportati da Python si ottiene un elenco enorme, inclusi quelli che ho citato, ovvero Linux , Microsoft Windows e macOS , sebbene ovviamente diverse distribuzioni Linux siano trattate da sole, ad esempio CentOS, Arch Linux o Fedora dovrebbero meritarsi un spot anche - o devo creare opzioni separate per Windows 10, 7, ecc.?

A causa dell'alto grado di ripetitività per quanto riguarda i moduli come Homebrew, Conda o simili, ho deciso di limitare la mia lista ai "tre principali" sistemi operativi - distribuzioni come Ubuntu ( Come faccio a eseguire il downgrade della mia versione di python da 3.7.5 a 3.6.5 su ubuntu ), CentOS ( come eseguire il downgrade della versione python su CentOS? ) può essere facilmente ricercato su Stack Overflow. Il più delle volte è possibile applicare soluzioni dalla scheda Linux per dette distribuzioni. Lo stesso vale con Windows e macOS (versioni).


@ moonman239 Per favore fatemi sapere se la mia soluzione ha soddisfatto i vostri criteri. Non esitate a fare domande o fatemi sapere se devo approfondire determinati argomenti.
JM Arnold

@ JMArnold: Sembra che tu abbia coperto tutte le basi. Grazie! Sto usando Windows, che sembra essere la minoranza degli utenti di Python, a giudicare dalla mancanza di risposte basate su Windows.
moonman239

3

Un modo pulito senza dover disinstallare una versione precedente o tornare a software aggiuntivo come Anaconda o docker, ecc. È scaricare il codice sorgente di Python 3.6 e installarlo come segue:

$ mkdir /home/<user>/python3.6
$ ./configure --prefix=/home/<user>/python3.6/
$ make altinstall

Per usarlo tu:

  • aggiungi /home/<user>/python3.6/binal tuo PATH(e libal LD_LIBRARY_PATH) e finiscila. (Potrebbe anche essere necessario aggiungere al percorso di inclusione ecc., A seconda di ciò che stai cercando di ottenere esattamente, ma spero che tu abbia l'idea.);

  • oppure, si crea un ambiente virtuale simile a questo: /home/<user>/python3.6/bin/python3.6 -m venv env-python3.6.

Nessun sudo o accesso root richiesto. Non rovinare il tuo sistema.


Non dimenticare di scaricare prima l'ultima versione ( 3.6.9
Rabindranath Andujar

2

Ho avuto problemi a installare tensorflow con python 3.7 e ho seguito queste istruzioni per configurare un ambiente virtuale con python3.6 e farlo funzionare

Download the Python3.6 tgz file from the official website (eg. Python-3.6.6.tgz)
Unpack it with tar -xvzf Python-3.6.6.tgz
cd Python-3.6.6
run ./configure
run make altinstall to install it (install vs altinstall explanation here 

configurazione dell'ambiente virtuale python3.6 per tensorflow

Se stai usando jupyter notebook o jupyter lab, questo può essere utile per scegliere il giusto ambiente virtuale

python -m venv projectname
source projectname/bin/activate
pip install ipykernel
ipython kernel install --user --name=projectname

A questo punto, puoi avviare jupyter, creare un nuovo notebook e selezionare il kernel che risiede nel tuo ambiente.

ambiente virtuale e notebook jupyter

Spero che sia di aiuto


2

pyenvpuò essere utilizzato in Linux / MacOS per la gestione delle versioni di python. pyenv-winè il fork di pyenvcui può essere utilizzato su Windows.

Installazione

Mac OS

Testato su Mac Catalina

  1. Installa pyenv.

    brew install pyenv
    
  2. Aggiungi quanto segue al tuo file di configurazione della shell:

    • .bashrc/ .bash_profile- Per Bash
    • .zshrc - Per Zsh
    export PYENV_ROOT="$HOME/.pyenv"
    export PATH="$PYENV_ROOT/bin:$PATH"
    eval "$(pyenv init -)"
    
  3. Riavvia la shell. Avvia una nuova shell o esegui exec "$SHELL"nella shell corrente.

Sottosistema Linux / Windows su Linux

Testato su Arch Linux

  1. Installa pyenvsul tuo sistema.

    curl https://pyenv.run | bash
    
  2. Segui gli stessi passaggi dei passaggi 2 e 3 dell'installazione di MacOS.

finestre

  1. Installa pyenv-winsu Windows.

    In Powershell

    pip install pyenv-win --target "$HOME\.pyenv"
    

    In cmd.exe

    pip install pyenv-win --target "%USERPROFILE%\.pyenv"
    
  2. Imposta le variabili d'ambiente usando Powershell / Terminal.

    [System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
    [System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
    [System.Environment]::SetEnvironmentVariable('path', $HOME + "\.pyenv\pyenv-win\bin;" + $HOME + "\.pyenv\pyenv-win\shims;" + $env:Path,"User")
    
  3. Chiudi e riapri il tuo terminale. Esegui pyenv --versionsul terminale.

    un. Se il valore restituito è la versione installata di pyenv, continua di seguito. b. Se si riceve un errore di comando non trovato, assicurarsi che le variabili di ambiente siano impostate correttamente tramite la GUI: Questo PC → Proprietà → Impostazioni di sistema avanzate → Avanzate → Variabili d'ambiente ... → PERCORSO c. Se ricevi un errore di comando non trovato e stai utilizzando Visual Studio Code o un altro IDE con un terminale integrato, riavvialo e riprova.

  4. Esegui pyenv rehashdalla directory home.

Utilizzo

Controlla le versioni di Python installate

pyenv versions

Esempio

$ pyenv versions
* system (set by /home/souser/.pyenv/version)
  3.6.9

Installata una versione specifica di Python

pyenv install <version-number>

Disinstalla una versione di Python installata

pyenv uninstall <version-number>

Imposta una versione di python come versione di python a livello di sistema

pyenv global <version-number> # <version-number> is the name assigned to your python in output of `pyenv versions`

Esempio

$ python --version
Python 3.9.1
$ pyenv global 3.6.9
$ python --version
Python 3.6.9
Imposta una versione di python per una directory e tutte le sue sottodirectory
pyenv local <version-number> # <version-number> is the name assigned to your python in output of `pyenv versions`

Esempio

~/tmp/temp$ python --version
Python 3.9.1
~/tmp/temp$ pyenv local 3.6.9
~/tmp/temp$ python --version
Python 3.6.9

Per maggiori dettagli, puoi controllare i repository Github: pyenv e pyenv-win .


1

Consiglierei semplicemente di creare un nuovo ambiente virtuale e di installare tutti i pacchetti dall'inizio poiché le ruote per alcuni pacchetti potrebbero essere state installate per la versione precedente di Python. Credo che questo sia il modo più sicuro e hai due opzioni.

  1. Creazione di un nuovo ambiente virtuale con venv:

    python3.6 -m venv -n new_env
    source venv_env/bin/activate
    
  2. Creare un condaambiente:

    conda create -n new_env python=3.6
    conda activate new_env
    

I pacchetti che installi in un ambiente sono costruiti in base alla versione Python dell'ambiente e se non modifichi attentamente l'ambiente esistente, puoi causare alcune incompatibilità tra i pacchetti. Questo è il motivo per cui consiglierei di utilizzare un nuovo ambiente creato con Python 3.6.


0

Scarica e installa Python 3.6, quindi modifica la variabile di ambiente del percorso di sistema in quella di python 3.6 ed elimina la variabile di ambiente di sistema del percorso di python 3.7. Riavvia il PC per i risultati.


0

Se usi anaconda, puoi semplicemente creare un nuovo ambiente con la versione specificata. Nel caso in cui non desideri mantenere la versione 3.7 esistente, puoi semplicemente disinstallarla e installarla da qui .


-1

Per coloro che desiderano aggiungere più versioni di Python nel proprio sistema: aggiungo facilmente più interpreti eseguendo i seguenti comandi:

  • sudo apt update
  • sudo apt install software-proprietà-common
  • sudo add-apt-repository ppa: deadsnakes / ppa
  • sudo apt installa python 3.xx
  • quindi mentre crei il tuo ambiente virtuale scegli l'interprete che preferisci.

-1

Ho appena fatto il downgrade del mio Python 3.9 a 3.6 perché volevo usare il pacchetto librosa ma non supporta ancora Python 3.9.

Passi -

  • Vai al sito ufficiale di Python
  • Scarica la versione di Python che desideri
  • Installa normalmente nella tua macchina

Esegui python3 --versionnel terminale e mostrerà questa versione di Python.

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.