Debian-facile

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

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

#1 25-09-2016 10:25:24

Lancelot du Lac
Membre
Lieu : France
Distrib. : Jessie | Stretch
Noyau : Linux 3.16.0-4-amd64 | 4.5.0-1-amd64
(G)UI : ZSH / LXDE, Openbox | KDE
Inscription : 22-02-2016

[RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

Bonjour à tous,

je suis actuellement en train d'apprendre les grandes bases du python, et pour ce faire, je travaille beaucoup directement dans l'interpréteur. Or, contrairement à Vim, l'interpréteur python ne colorise pas les commandes rentrées. J'avoue que je me suis habitué à la colorisation avec Zsh et Fish, et que j'ai du mal à m'en passer. Ma question est donc : quelqu'un connaîtrait-il un module python (ou autre d'ailleurs) capable de colorer directement dans l'interpréteur ?
Merci d'avance !

Dernière modification par Lancelot du Lac (25-09-2016 15:43:11)


Dell Inspiron 7500 series - Debian Stretch - KDE/openbox - ZSH
Samsung - Debian Jessie - LXDE/pas de graphique - ZSH

Hors ligne

#2 25-09-2016 10:30:43

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

bonjour,

Tu peux essayer avec ipython, c'est une surcouche à python spécialement prévu
pour être utilisé interactivement.

EDIT: Le paquet pour python3 s'appelle ipython3. Et si tu installes ipython3-notebook
tu peux faire du python depuis un navigateur web. Il y a aussi ipython3-qtconsole et
jupyter-console qui peuvent être intéressants.

Dernière modification par enicar (25-09-2016 10:37:58)


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#3 25-09-2016 10:34:09

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

Tiens j'ai pensé aussi à idle (le paquet pour python3 s'appelle idle3).
C'est tout un environnement avec un éditeur et un interpréteur. C'est assez sympa.

EDIT: Par contre, pas sûr qu'il y ait la coloration syntaxique dans l'interpréteur…

Dernière modification par enicar (25-09-2016 10:45:10)


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#4 25-09-2016 10:50:54

sogal
Black Metal Modo
Distrib. : Debian Testing
Noyau : 4.7
(G)UI : Gnome
Inscription : 09-05-2013
Site Web

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

Salut,
Je te conseille vivement d'utiliser la dernière version d'ipython3 qui apporte de nombreuses fonctionnalités : https://linuxfr.org/news/sortie-de-ipython-5-0
dont une colo. syntaxique et une auto-complétion agréables.
Dans Testing je l'ai installé via pip:

apt install python3-pip


pip3 install setuptools


pip3 install ipython


Machine perso : Thinkpad x230 Debian Stretch | Machine pro : Thinpad T450 openSUSE Leap 42.2

Hors ligne

#5 25-09-2016 11:28:30

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

Sinon, j'ai pensé à une autre alternative en console : bpython3.
C'est un shell python (une Read-Eval-Print-Loop, repl pour les intimes wink), il y a la coloration
syntaxique plus d'autres choses. Par exemple quand tu tapes un nom de fonction il t'affiche la
chaîne de documentation (ipython fait aussi cela smile).

La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#6 25-09-2016 11:33:32

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

La version 5 de ipython3 est encore dans expérimental…
Aussi Je trouve que la plus belle interface est jupyter dans un navigateur web.
Quand tu traces des courbes ou des graphiques avec la matplotlib, c'est très réussi.

Dernière modification par enicar (25-09-2016 11:34:40)


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#7 25-09-2016 15:42:50

Lancelot du Lac
Membre
Lieu : France
Distrib. : Jessie | Stretch
Noyau : Linux 3.16.0-4-amd64 | 4.5.0-1-amd64
(G)UI : ZSH / LXDE, Openbox | KDE
Inscription : 22-02-2016

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

Que de solutions ! big_smile J'hésite entre ipython3 et bpython3. Le fait que jupyter ne soit pas en console m'ennuie. Je vais tester les deux, et on verra.
Merci de votre aide précieuse et rapide !

Dell Inspiron 7500 series - Debian Stretch - KDE/openbox - ZSH
Samsung - Debian Jessie - LXDE/pas de graphique - ZSH

Hors ligne

#8 25-09-2016 16:34:34

sogal
Black Metal Modo
Distrib. : Debian Testing
Noyau : 4.7
(G)UI : Gnome
Inscription : 09-05-2013
Site Web

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

Du coup j'ai testé bpython3 que je n'avais jamais utilisé. Il est pas mal du tout, l'auto-complétion avec info sur l'instruction sous le curseurs est bien foutue.
Manque juste le retour arrière par bloc d'instruction et non par ligne (ce qu'apporte la v5.0 d'ipython).

@ Lancelot : n'hésites pas à nous donner ton retour après tests wink

Machine perso : Thinkpad x230 Debian Stretch | Machine pro : Thinpad T450 openSUSE Leap 42.2

Hors ligne

#9 26-09-2016 09:33:13

Lancelot du Lac
Membre
Lieu : France
Distrib. : Jessie | Stretch
Noyau : Linux 3.16.0-4-amd64 | 4.5.0-1-amd64
(G)UI : ZSH / LXDE, Openbox | KDE
Inscription : 22-02-2016

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

Pour le moment, je teste ipython, et c'est très agréable. Une des choses que j'apprécie le plus est justement le retour arrière par bloc, et non par ligne, ce qui m'énervait beaucoup avec l'interpréteur python de base (dès qu'on fait la moindre erreur sur une grosse fonction, c'est difficile de tout remettre en ordre...) Du coup, ce que dit Sogal ne me pousse plus tellement à aller voir bpython3...
Autre chose que j'apprécie : il y a un système d'autocomplétion assez poussé sur ipython, et parfaitement clair en plus (en tout cas pour le moment, il ne me propose pas plus de dix possibilités, donc je ne risque pas de m'y perdre.) J'attends de voir les défauts avec le temps, mais pour quelques premiers pas, c'est déjà le coup de foudre.

Dell Inspiron 7500 series - Debian Stretch - KDE/openbox - ZSH
Samsung - Debian Jessie - LXDE/pas de graphique - ZSH

Hors ligne

#10 26-09-2016 18:58:17

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

Très bien, je suis content que tu aies trouvé une solution qui te convienne smile

La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#11 27-09-2016 18:42:15

Lancelot du Lac
Membre
Lieu : France
Distrib. : Jessie | Stretch
Noyau : Linux 3.16.0-4-amd64 | 4.5.0-1-amd64
(G)UI : ZSH / LXDE, Openbox | KDE
Inscription : 22-02-2016

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

Je viens de repérer un truc désagréable dans ipython3 : en faisant un try, puis un except, la tabulation ne prenait pas en compte le fait que le except est sur le même plan que le try, ce qui provoque évidemment une erreur ensuite. Je ne sais pas si vous avez le même problème...


try:
     print(a)
     except NameError:
 


Dell Inspiron 7500 series - Debian Stretch - KDE/openbox - ZSH
Samsung - Debian Jessie - LXDE/pas de graphique - ZSH

Hors ligne

#12 27-09-2016 20:03:31

sogal
Black Metal Modo
Distrib. : Debian Testing
Noyau : 4.7
(G)UI : Gnome
Inscription : 09-05-2013
Site Web

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

Salut,
Ça ne me choque pas, comment est-ce qu'ipython sait que tu as fini d'écrire toutes tes instructions du bloc "try" ?
Tu pourrais vouloir essayer d'autres choses.
Quant j'écris une boucle while, c'est pareil, il ne désindente pas automatiquement :

In [8]: i = 0

In [9]: while i < 10:
   ...:     print("Salut")
   ...:     ||


Machine perso : Thinkpad x230 Debian Stretch | Machine pro : Thinpad T450 openSUSE Leap 42.2

Hors ligne

#13 28-09-2016 14:12:01

Lancelot du Lac
Membre
Lieu : France
Distrib. : Jessie | Stretch
Noyau : Linux 3.16.0-4-amd64 | 4.5.0-1-amd64
(G)UI : ZSH / LXDE, Openbox | KDE
Inscription : 22-02-2016

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

Vim le fait, alors... Je pense qu'il doit pouvoir le savoir en partant du principe que le except ne doit pas se trouver dans le try (du moins selon mes connaissances, fort limitées pour le moment.)
Ce qui m'ennuie surtout, c'est qu'il faut ensuite supprimer les espaces surnuméraires les uns après les autres. Et si le try se trouve dans une boucle qui se trouve dans une fonction, par exemple, ça devient compliqué:


def fonction():
     while i < 10:
          try:
               print(a)
               except NameError:
...


Est-ce qu'il y a une combinaison de touches qui peut supprimer une tabulation ? Chez moi, le retour arrière supprime un espace à la fois seulement.


Dell Inspiron 7500 series - Debian Stretch - KDE/openbox - ZSH
Samsung - Debian Jessie - LXDE/pas de graphique - ZSH

Hors ligne

#14 28-09-2016 15:13:33

sogal
Black Metal Modo
Distrib. : Debian Testing
Noyau : 4.7
(G)UI : Gnome
Inscription : 09-05-2013
Site Web

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

iPython3 utilise le keybinding d'emacs / bash par défaut.
Tu peux donc tout simplement placer ton curseur en début de ligne puis faire un Ctrl + U pour supprimer tout le début de la ligne (donc les 4 espaces).

Machine perso : Thinkpad x230 Debian Stretch | Machine pro : Thinpad T450 openSUSE Leap 42.2

Hors ligne

#15 28-09-2016 17:22:38

dh
Membre
Lieu : Rhône
Distrib. : SID
Noyau : 4.2.0-1-amd64
(G)UI : Gnome3
Inscription : 23-03-2010

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

J'ai vu passé chez un client cet utilitaire : https://github.com/jonathanslenders/ptpython/
C'est installable avec pip

Dernière modification par dh (28-09-2016 17:22:54)


Libertaire, libéral, libre.

Hors ligne

#16 28-09-2016 17:56:32

sogal
Black Metal Modo
Distrib. : Debian Testing
Noyau : 4.7
(G)UI : Gnome
Inscription : 09-05-2013
Site Web

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

Salut dh,

dh a écrit :

J'ai vu passé chez un client cet utilitaire : https://github.com/jonathanslenders/ptpython/


Sur le papier ça n'a pas l'air mal du tout, ça semble pouvoir s'interfacer avec iPython.
Je vais vite tester ça. Merci pour ton retour.


Machine perso : Thinkpad x230 Debian Stretch | Machine pro : Thinpad T450 openSUSE Leap 42.2

Hors ligne

#17 30-09-2016 17:06:08

Lancelot du Lac
Membre
Lieu : France
Distrib. : Jessie | Stretch
Noyau : Linux 3.16.0-4-amd64 | 4.5.0-1-amd64
(G)UI : ZSH / LXDE, Openbox | KDE
Inscription : 22-02-2016

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

Ah, une tabulation, c'est quatre espaces ! C'est toujours bon à savoir : jusque là, je faisais ça un peu au pif. tongue Je prends le raccourci, mais je ne sais pas si je vais arriver à m'y faire. Merci !

Dell Inspiron 7500 series - Debian Stretch - KDE/openbox - ZSH
Samsung - Debian Jessie - LXDE/pas de graphique - ZSH

Hors ligne

#18 24-10-2016 18:48:29

Lancelot du Lac
Membre
Lieu : France
Distrib. : Jessie | Stretch
Noyau : Linux 3.16.0-4-amd64 | 4.5.0-1-amd64
(G)UI : ZSH / LXDE, Openbox | KDE
Inscription : 22-02-2016

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

J'ai un problème avec ipython3 : lorsque je teste un module que je suis en train de modifier, les modifications ne sont pas prises en compte lorsque j'importe à nouveau. Il faut que j'éteigne et que je rouvre ipython3. Est-ce que vous connaissez un moyen de recharger sans passer par là ?
Merci d'avance !

Dell Inspiron 7500 series - Debian Stretch - KDE/openbox - ZSH
Samsung - Debian Jessie - LXDE/pas de graphique - ZSH

Hors ligne

#19 24-10-2016 19:13:48

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

Il semblerait que ipython puisse recharger lui même automatiquement tout fichier
qui est modifié. Mais il faut lui demander poliment.
La documentation de référence en parle ici :
https://ipython.readthedocs.io/en/stabl … rence.html
dans la section « Recursive reload ».
En bref il suffit de charger un module qui gère cela :


from IPython.lib.deepreload import reload as dreload
 


Ceci dit je n'ai pas essayé…


Aussi, il vaudrait mieux utiliser la commande magique « %edit » dans ipython pour
éditer ton module. De cette façon il prend soin de le recharger automatiquement quand tu quittes
ton éditeur. Pour que cela fonctionne il faut que tu renseignes la variable d'environnement EDITOR.


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#20 24-10-2016 19:18:01

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

Aussi, je me dis qu'il aurait valu le coup d'ouvrir une autre discussion spécifique à cette question.
Les modérateurs décideront ce qu'il en est wink

La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#21 24-10-2016 19:43:49

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : [RÉSOLU avec plusieurs solutions] Colorer python dans le terminal

En fait après essai, le %edit ne fait pas recharger le module édité. Par contre


from IPython.lib.deepreload import reload as dreload
 


fonctionne bien, pour recharger ton module il suffit de faire (pseudo code) :


dreload(module)
 


ou « module » est le nom de ton module wink


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

Pied de page des forums