logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 20-11-2019 13:24:28

david.kali
Membre
Inscription : 20-11-2019

environnement python

Bonjour à tous,
Je voudrais changer de version python au sein de mon system.

#python --version
#Python 2.7.17



update-alternatives --list python
update-alternatives: erreur: pas d'alternatives pour python



update-alternatives --install /usr/bin/python python /usr/bin/python2.7.17
update-alternatives: --install a besoin de <lien> <nom> <chemin> <priorité>



donc là je suis un peu perdu pour le coup..le lien ? un alias ?

Hors ligne

#2 20-11-2019 13:36:57

David5647
Membre
Distrib. : Debian Sid
Noyau : 5.15.0-2-amd64
(G)UI : i3wm + des bouts de kde
Inscription : 27-08-2017

Re : environnement python

Que cherches tu à faire?

Actuellement :

python

lance python 2.xx, il n'y a pas de version supérieure à la 2.7.17

python3

lance python 3.xx

Dans un script python on peut préciser quel binaire utiliser :

#!/usr/bin/python3


Pour installer python3 :

apt-get install python3


Pour utiliser des versions de bibliothèques spécifiques,
c'est sur la création d'environnement virtuel qu'il faut se pencher, par ex : https://docs.python.org/fr/3/library/venv.html

Quelle est ta question?

Dernière modification par David5647 (20-11-2019 13:39:10)

Hors ligne

#3 20-11-2019 14:07:08

david.kali
Membre
Inscription : 20-11-2019

Re : environnement python

Je cherche à faire ça :
https://mk57blog.wordpress.com/2017/01/ … ur-debian/

Python3.8 est installé avec pip.
mais mon os démarre toujours sur python2.7

Dernière modification par david.kali (20-11-2019 14:10:47)

Hors ligne

#4 20-11-2019 14:08:52

framend
Modo-Moule zébrée
Lieu : .$_ENV["HOME"]
Distrib. : Debian «Sid»
Noyau : uname -r
(G)UI : sway
Inscription : 17-11-2018

Re : environnement python

L'usage de venv pour utiliser differentes versions de python est plus que recommandé, quand à python2 il est complètement en fin de vie et honnêtement autant passer à python3 directement. (même si oui, il en restera et il faudra le maintenir, mais tout ce qui est à écrire en « neuf » devrait l'être en python3).

J'ajouterai même que le shebang d'un script/module python3 est plutôt :

#!/usr/bin/env python3


Ce qui évitera des soucis d'interopérabilité d'une distro à une autre (l'interpreteur est ainsi cherché dans $PATH et non pas hard-codé directement dans /usr/bin).
Un peu de lecture ici

Pour ce qui est de python3.8 ce n'est pas la version « par default » sous Debian, donc l'insaller dans un venv à encore plus de sens selon moi…


“It is not daily increase but daily decrease, hack away the unessential. The closer to the source, the less wastage there is.” - Bruce Lee (philosophe)

Hors ligne

#5 20-11-2019 14:23:02

david.kali
Membre
Inscription : 20-11-2019

Re : environnement python

Je suis désolé je suis novice avec python, je n'ai rien compris à vos réponses...
Ma question c'est comment mon système peut il prendre python3 plutot que python =2.7 ?
car j'ai python3 mais quand je fais :
python --version c'est la 2.7 qui tourne...
et d'après ce que j'ai trouvé c'est update-alternatives qui va charger le python désiré

Dernière modification par david.kali (20-11-2019 14:23:55)

Hors ligne

#6 20-11-2019 14:37:57

framend
Modo-Moule zébrée
Lieu : .$_ENV["HOME"]
Distrib. : Debian «Sid»
Noyau : uname -r
(G)UI : sway
Inscription : 17-11-2018

Re : environnement python

En fait je te conseillerai plutôt d'installer python3 via les dépôts comme te l'a recommandé David donc :

apt install python3


Ensuite tu pourras lancer l'interpreteur interactif via la commande :

python3


Et les scripts et/ou modules en python3 doivent être indiqués comme tels en mettant le shebang

#!/usr/bin/env python3


en tant que premiere ligne du script.

Si tu en es au tout début je te recommande de te documenter très très fort sur deux concepts essentiels : l'encodage utf-8 et les environnements virtuels

Edit: C'est aussi très sympa de renseigner les champs de la section « profil » du forum.


“It is not daily increase but daily decrease, hack away the unessential. The closer to the source, the less wastage there is.” - Bruce Lee (philosophe)

Hors ligne

#7 20-11-2019 14:45:35

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian
Noyau : Dur
(G)UI : gui gui, je zuis un doiseau
Inscription : 07-07-2008
Site Web

Re : environnement python

Alors, si tu changes ton système pour que « python » lance python3, tu vas tout casser. De nombreuses applications utilisent /usr/bin/python en croyant qu'il s'agit de python2.7

Si tu veux lancer python 3, c'est simple, tu tapes « python3 »

Si tu veux vraiment lancer python3 en tapant python, crées-toi un alias dans ton ~/.bashrc

alias python=python3



Ça n'impactera que ce que tu tapes dans le terminal, mais pas les #! ou les autres applications.


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#8 20-11-2019 15:22:51

David5647
Membre
Distrib. : Debian Sid
Noyau : 5.15.0-2-amd64
(G)UI : i3wm + des bouts de kde
Inscription : 27-08-2017

Re : environnement python

utilise :

python3.7 mon_script.py


Comme ça tu es sûr de la version lancée

Hors ligne

#9 20-11-2019 17:11:22

david.kali
Membre
Inscription : 20-11-2019

Re : environnement python

je vous remercie pour votre aide, votre investissement. C'est vraiment gentil à vous.
Je ne cherche pas à lancer python moi meme. Mais je sais qu'il tourne en fond pour permettre à d'autres programmes de fonctionner.
lorsque je démarre ma debian j'ouvre un term et je lance python --version j'ai un retour 2.7.17 alors que je voudrais que le système lui même lance 3.8 qui est plus récent.
Ce n'est pas moi qui lance python l'interpreteur tourne en processus....mais le processus lance 2.7 au lieu de 3.8
apparemment on peut utiliser update-alternatives pour corriger cela mais je ne sais pas trop utiliser update-alternatives

Hors ligne

#10 20-11-2019 17:59:17

David5647
Membre
Distrib. : Debian Sid
Noyau : 5.15.0-2-amd64
(G)UI : i3wm + des bouts de kde
Inscription : 27-08-2017

Re : environnement python

Tu as récupéré un .deb qui nécessite cette manip, c'est ça?

david.kali a écrit :


update-alternatives --install /usr/bin/python python /usr/bin/python2.7.17
update-alternatives: --install a besoin de <lien> <nom> <chemin> <priorité>


Il manque la priorité : 1, 2, 3, ... suivant le nombre d'alternatives que tu veux définir
pas sûr que tu ais besoin du ".17"
On aurai alors, avec X.Y la version souhaitée :

update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2
update-alternatives --install /usr/bin/python python /usr/bin/pythonX.Y 1



Il te faudra sûrement installer antérieurement la version de python souhaitée,
voir si elle est dans les dépôts ou si tu te la procure autrement. Chez moi :

 ls -l /usr/bin/python*


lrwxrwxrwx 1 root root       7 oct.  10 13:32 /usr/bin/python -> python2
lrwxrwxrwx 1 root root       9 oct.  10 13:32 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 3692952 oct.  20 01:36 /usr/bin/python2.7
lrwxrwxrwx 1 root root       9 oct.   2 14:31 /usr/bin/python3 -> python3.7
-rwxr-xr-x 2 root root 5102632 oct.  27 16:43 /usr/bin/python3.7
-rwxr-xr-x 2 root root 5102632 oct.  27 16:43 /usr/bin/python3.7m
lrwxrwxrwx 1 root root      10 oct.   2 14:31 /usr/bin/python3m -> python3.7m
 

Hors ligne

#11 20-11-2019 18:05:11

framend
Modo-Moule zébrée
Lieu : .$_ENV["HOME"]
Distrib. : Debian «Sid»
Noyau : uname -r
(G)UI : sway
Inscription : 17-11-2018

Re : environnement python

Comme dit par le captain plus haut je pense que c'est un problème.
Lorsqu'un programme cherchera à utiliser python (2, donc…) il tombera sur python3 ce qui ne donnera rien de bon… Mais alors rien du tout.

“It is not daily increase but daily decrease, hack away the unessential. The closer to the source, the less wastage there is.” - Bruce Lee (philosophe)

Hors ligne

Pied de page des forums