Comment mettre à jour mon RPi3 vers Python 3.6?

39

Python 3.6 vient de sortir. J'ai essayé de suivre ces instructions pour compiler à partir d'une archive tar, mais celle-ci s'est accrochée à la makecommande. J'ai donc mis fin au processus au bout de 20 minutes environ.

J'ai aussi remarqué que pendant le ./configurecommandement, un certain nombre de vérifications se terminaient par "non". Dois-je repasser à travers et installer tout ce qui a fait tel?

Justin Palmer
la source
Vous devriez probablement essayer ces: askubuntu.com/a/865569
Sagu

Réponses:

34

Comment mettre à jour mon RPi3 vers Python 3.6?

À ce jour, seule l'installation à partir du source est disponible. Les instructions que vous avez référencées sont correctes pour la version 3.6. Répéter:

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

Sur un Raspbian frais sur Raspberry Pi 3 avec une carte SD de classe 10 (YMMV):

  • configure prend plus de 2 minutes
  • make prend environ 15 minutes (il produit 8 avertissements au stderr)
  • sudo make install prend environ 2 minutes

Dois-je repasser à travers et installer tout ce qui a fait tel?

À moins que le configurescript ne signale une erreur, la réponse est: non, bien sûr que non.

configureeffectue une série de vérifications et utilise les résultats comme entrée pour créer le fichier Makefile. Les résultats dépendent de l'architecture, des caractéristiques matérielles, etc. Ce ne sont pas des exigences pour une compilation réussie. Une des premières vérifications est une vérification de Python 3.6 lui-même, pour lequel le résultat sera certainement no.

make -j4 utilise simplement les 4 cœurs rpi dans le processus de création (beaucoup plus rapide)

Techraf
la source
Je viens d'essayer cela, mais cela prend pour toujours. La configuration a pris 134 minutes et make fonctionne depuis plus d’une heure maintenant. Modèle RPi3, dernier raspbian. Une idée pourquoi cela prend si longtemps?
Mystère
@ Mythery votre carte SD est probablement trop lente. Obtenez quelque chose d'une bonne marque (Sandisk, Samsung, etc.) et assurez-vous qu'il est au moins de classe 10 (Sandisk l'appelle "Ultra").
Tarun
2
Bien que je puisse commenter cet énoncé, vous devez vous rappeler d’installer les paquets requis AVANT de compiler et d’installer, sinon pip3 ne fonctionnera pas à cause d’erreurs SSL (oui, j’ai dû attendre environ 2 heures pour une installation sur mon Zero W ). Les paquets nécessaires sont ici: tecadmin.net/install-python-3-6-ubuntu-linuxmint
MortenMoulder
Vous avez une erreur avec Python 3.7.2 dans rb pi 3, résolu en exécutant sudo apt-get install libffi-devcomme suggéré dans cette réponse stackoverflow.com/a/48045929/2343488
juliocesar
24

Je vous recommande vivement de consulter le gestionnaire de paquets Berryconda de jjhelmus . Il s’agit essentiellement d’une version plus récente de la version armv7l de Miniconda . Le paquet Python 3.6 est disponible sans qu’il soit nécessaire de le compiler à partir des sources.

Si vous avez déjà condainstallé l'installation, vous pouvez également simplement ajouter le canal rpi par défaut de Berryconda et installer Python 3.6:

conda config --add channels rpi
conda install python=3.6
Gustavo Bezerra
la source
Eh bien, c'est beaucoup plus simple que de compiler à partir des sources. Merci!
Ekevoo
1
Pour compléter, continuez avecconda create -n py36 python=3.6
brittohalloran
Berryconda, quelle excellente solution!
DJK
@brittohaloran À partir de ce commentaire, cela installe Python 3.6.6 dans l' baseenvironnement conda , vous voudrez donc probablement nommer votre env créé quelque chose de descriptif de ce que vous prévoyez de mettre dans cet env (autre chose que py36).
plaques
Fonctionne comme un charme, solution la meilleure et la plus simple
Grant
12

Pour une construction rapide dans Raspberry Pi 3, utilisez le paramètre -j4 dans la commande make:

make -j4
Hector Oliveros
la source
3
Semblait assez rapide! Une minute ou deux vs 15+ minutes sans -j4 !!!
JxAxMxIxN Le
1
Que fait ce param?
Timbram
2
Le paramètre -j4 indique à make de démarrer 4 tâches en parallèle afin de pouvoir utiliser les 4 cœurs de processeur simultanément.
hdiogenes
4

J'utilise un RPi2 et j'ai réussi à suivre la procédure suggérée pour installer python3.6. Mais comme l’a souligné un intervenant, j’ai rencontré des problèmes avec ssl lorsque j’ai essayé d’ installer des paquets avec pip .

J'ai appris d' un autre thread sur un sujet différent que je dois installer ssl avant de compiler.

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 installez libatlas-base-dev gfortran

python3.6 -m pip install --user scipy

l'installation de scipy avec pip prend très longtemps (heures) et je cherche une solution. J'y reviendrai. le reste de l'installation est maintenant mis en attente.

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 pandas

python3.6 -m pip install --user sympy

python3.6 -m pip install - nez de l'utilisateur

L’avantage d’avoir à compiler python3.6 une deuxième fois était une compilation beaucoup plus rapide la deuxième fois. D'autre part, l'installation de numpy prend beaucoup de temps, et c'est pourquoi j'ai scindé l'installation du paquet.

Vardaasen
la source
L'installation de numpy et de scipy est un obstacle en soi et devrait probablement être effectuée à partir du source, et non de pip, en raison de dépendances externes spécifiques à la plate-forme. Voir ma réponse au problème ici: raspberrypi.stackexchange.com/a/77856/79467 . D'autre part, l'installation n'est pas vraiment plus rapide de cette façon, mais la vitesse d'exécution sera substantiellement.
Teoguso
1

Vous devez installer toutes les dépendances. Tous ces messages d'avertissement, ces messages d'erreur et ces contrôles "non" doivent être adressés.

tlhIngan
la source
Comment vous adressez-vous par exemple à ceci:, checking Solaris LFS bug... noou checking getaddrinfo bug... no, ou checking for the Android API level... not Android? Et plus important encore: comment gérez-vous cela checking for python3.6... nolors de l’installation de Python 3.6?
Techraf
@techraf Ces spécifiques sont ok. Il s'agit de rechercher des solutions, et non des dépendances. Le dernier vérifie seulement si vous avez déjà Python 3.6 avant de tenter de l’installer.
tlhIngan
Ainsi, bien que vous ayez suggéré de répondre à « tous ces []" non "contrôles , ceux-ci étaient corrects. Comment puis-je savoir qui sont ok, alors? J'ai 170 "nos". Sont-ils:, checking for conio.h... noou checking for pthread_init... no, checking for libutil.h... nospécifiques ou non , ou doivent-ils être traités?
Techraf
On dirait qu'il cherche des fichiers d'en-tête C et des composants déjà installés. Dans ce cas, je pense que vous pouvez ignorer les "vérifications", cela consiste simplement à aider le compilateur à constituer le fichier makefile, comme expliqué dans une autre réponse. Les erreurs et les avertissements doivent être résolus, mais ces contrôles sont satisfaisants.
tlhIngan