Come posso aggiornare il mio RPi3 a Python 3.6?


39

Python 3.6 è appena uscito. Ho provato a seguire queste istruzioni per compilare da un tarball, ma si è makebloccato sul comando, quindi ho terminato il processo dopo circa 20 minuti.

Ho anche notato che mentre il ./configurecomando era in esecuzione, un certo numero di controlli è terminato con "no". Devo tornare indietro e installare tutto ciò che ha fatto tale?


Probabilmente dovresti provare questi: askubuntu.com/a/865569
Sagu

Risposte:


34

Come posso aggiornare il mio RPi3 a Python 3.6?

Ad oggi, è disponibile solo l'installazione dalla fonte. Le istruzioni a cui hai fatto riferimento sono corrette per la versione 3.6. Ripetere:

wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
tar xzvf Python-3.6.0.tgz
cd Python-3.6.0/
./configure
make -j4
sudo make install

Su un nuovo Raspbian su Raspberry Pi 3 con una scheda SD di classe 10 (YMMV):

  • configure richiede oltre 2 minuti
  • make dura circa 15 minuti (produce 8 avvertimenti per lo stderr)
  • sudo make install dura circa 2 minuti

Devo tornare indietro e installare tutto ciò che ha fatto tale?

A meno che lo configurescript non riporti un errore, la risposta è: no, certo che no.

configureesegue una serie di controlli e utilizza i risultati come input per creare il file Makefile. I risultati dipendono dall'architettura, dalle funzionalità hardware, ecc. Questi non sono requisiti per la compilazione corretta. Uno dei primi controlli è un controllo per Python 3.6 stesso, per il quale il risultato sarà sicuramente no.

make -j4 utilizza semplicemente tutti e 4 i core rpi nel processo di creazione (molto più veloce)


Ho appena provato questo, ma ci vuole sempre. configure ha richiesto 134min e make è in esecuzione da più di un'ora. Modello RPi3, ultima raspbian. Qualche idea sul perché questo impieghi così tanto tempo?
Mistero

@Mystery la tua scheda SD è probabilmente troppo lenta. Ottieni qualcosa da un buon marchio (Sandisk, Samsung ecc.) E assicurati che sia almeno di classe 10 (Sandisk lo chiama "Ultra").
Tarun

2
Ho pensato di commentare questo detto, è necessario ricordare di installare i pacchetti richiesti PRIMA di compilare e installare, altrimenti pip3 non funzionerà a causa di errori SSL (sì, ho dovuto aspettare circa 2 ore su un'installazione sul mio Zero W ). I pacchetti richiesti sono qui: tecadmin.net/install-python-3-6-ubuntu-linuxmint
MortenMoulder

Errore ottenuto con Python 3.7.2 in rb PI 3, risolto da executeing sudo apt-get install libffi-devcome suggerito in questa risposta stackoverflow.com/a/48045929/2343488
Júlio César Soares Espíndola

24

Mi raccomando di controllare il Berryconda gestore di pacchetti da jjhelmus . È fondamentalmente una versione più aggiornata della versione armv7l di Miniconda e ha il pacchetto Python 3.6 disponibile senza la necessità di compilarlo dal sorgente.

In alternativa, se hai già condainstallato, puoi semplicemente provare ad aggiungere il canale rpi predefinito di Berryconda e installare Python 3.6:

conda config --add channels rpi
conda install python=3.6

Bene, è molto più semplice della compilazione dalla fonte. Grazie!
Ekevoo,

1
Per completezza, seguitelo conconda create -n py36 python=3.6
brittohalloran il

Berryconda, che soluzione eccellente!
DJK,

@brittohaloran A partire da questo commento questo installa Python 3.6.6 nell'ambiente conda base, quindi probabilmente vorrai nominare il tuo env creato qualcosa di descrittivo di ciò che intendi mettere in quel env (qualcosa di diverso da py36).
Piani cottura

Funziona come un incantesimo, la soluzione migliore e più semplice
Concedi il

12

Per compilare velocemente in Raspberry Pi 3 usa il parametro -j4 nel comando make:

make -j4

3
Sembrava abbastanza veloce! Un minuto o due contro 15+ minuti senza -j4 !!!
JxAxMxIxN,

1
Cosa fa quel parametro?
timbram,

2
Il parametro -j4 indica a make di avviare 4 processi paralleli, in modo da poter utilizzare tutti e 4 i core della CPU contemporaneamente.
hdiogenes,

4

Sto usando un RPi2 e sono riuscito con successo a seguire la procedura suggerita per installare python3.6. Ma, come sottolineato da un commentatore, ho riscontrato problemi con ssl quando ho provato a installare pacchetti con pip .

Ho imparato da un altro thread su argomenti diversi che devo installare ssl prima di compilare.

sudo apt-get install libssl-dev
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
tar xzvf Python-3.6.0.tgz
cd Python-3.6.0/
./configure
make
sudo make install
python3.6 -V
python3.6 -m pip install --upgrade pip
python3.6 -m pip install --user numpy 
sudo apt-get update
sudo apt-get upgrade

sudo apt-get install libatlas-base-dev gfortran

python3.6 -m pip install --user scipy

l'installazione di scipy con pip richiede molto tempo (ore) e sto cercando una soluzione. Tornerò su questo. il resto dell'installazione è ora sospeso.

python3.6 -m pip install --user matplotlib

python3.6 -m pip install --user ipython

python3.6 -m pip install --user jupyter

python3.6 -m pip install - user panda

python3.6 -m pip install --user sympy

python3.6 -m pip install - naso dell'utente

Il vantaggio di dover compilare python3.6 una seconda volta è stata una compilazione molto più veloce la seconda volta. D'altra parte, l'installazione numpy richiede molto tempo ed è per questo che ho suddiviso l'installazione del pacchetto.


L'installazione di numpy e scipy è un ostacolo da sola e probabilmente dovrebbe essere fatta dalla fonte, non dal pip, a causa delle dipendenze esterne specifiche della piattaforma. Vedi la mia risposta al problema qui: raspberrypi.stackexchange.com/a/77856/79467 . D'altra parte l'installazione non è molto più rapida in questo modo, ma la velocità di runtime sarà sostanzialmente.
teoguso,

1

Devi installare tutte le dipendenze. Tutti questi messaggi di avviso, messaggi di errore e controlli "no" devono essere indirizzati.


Come affrontate ad esempio questi:, checking Solaris LFS bug... noo checking getaddrinfo bug... no, o checking for the Android API level... not Android? E, soprattutto: come risolverlo checking for python3.6... nodurante l'installazione di Python 3.6?
techraf il

@techraf Questi specifici sono ok. Sta controllando le cose da sistemare, non le dipendenze. L'ultimo controlla solo se hai già Python 3.6 prima di provare a installarlo.
tlhIngan

Quindi, sebbene tu abbia suggerito " Tutti quei []" no "controlli devono essere indirizzati ", quelli specifici erano ok. Come faccio a sapere quali sono ok, allora? Ho ricevuto 170 "nn". Sono:, checking for conio.h... noo checking for pthread_init... no, o checking for libutil.h... nospecifici e ok, o devono essere affrontati?
techraf il

Sembra che stia verificando la presenza di file di intestazione C e componenti che potrebbero essere già stati installati. In questo caso, penso che tu possa ignorare i "controlli", sta solo aiutando il compilatore a mettere insieme il makefile, come spiegato in un'altra risposta. Errori e avvisi devono essere risolti con certezza, ma questi controlli vanno bene.
tlhIngan
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.