Comment activer les numéros de ligne dans IDLE?


110

Dans le shell principal de IDLE, les erreurs renvoient toujours un numéro de ligne mais l'environnement de développement n'a même pas de numéros de ligne. Est-il possible d'activer les numéros de ligne?


3
Wow, un IDE sans numéros de ligne? Est-ce que quelqu'un d'autre trouve ça aussi bizarre que moi?
Paul Feakins

2
@PaulFeakins Les concepteurs originaux de IDLE ont apparemment estimé que le numéro de ligne sur la barre d'état et les deux façons d'accéder à un numéro de ligne étaient à peine suffisants. Et il y avait des problèmes techniques pour les faire correctement. J'ai utilisé IDLE quotidiennement et pour mon usage je les ai à peine manqués. Dans tous les cas, nous venons de les ajouter. Détails dans ma réponse.
Terry Jan Reedy

1
Dans Python 3.8 IDLE, une nouvelle option a été ajoutée dans la barre de menu: Options -> Afficher les numéros de ligne
Diroallu

Réponses:


149

Version 3.8 ou plus récente:

Pour afficher les numéros de ligne dans la fenêtre actuelle, accédez à Optionset cliquez sur Show Line Numbers.

Pour les afficher automatiquement, allez à Options> Configure IDLE> Generalet cochez la Show line numbers in new windowscase.

Version 3.7 ou antérieure:

Malheureusement, il n'y a pas d'option pour afficher les numéros de ligne dans IDLE bien qu'une demande d'amélioration soit ouverte à ce sujet.

Cependant, il existe plusieurs façons de contourner ce problème:

  1. Dans le menu d'édition, il y a une option aller à la ligne (il existe un raccourci par défaut Alt + G pour cela).

  2. Il y a un affichage en bas à droite qui vous indique votre numéro de ligne / position actuelle sur la ligne:

entrez la description de l'image ici


4
Sur Mac, le raccourci pour naviguer entre les lignes est cmd + j.
tommy.carstensen

6
Alors que cette solution de contournement fonctionne, pourquoi les lignes numérotées n'ont-elles pas été incluses dans la première version. Cela semble être une caractéristique évidente. Très décevant que cela ne soit pas inclus.
JayRugMan

Si l'utilisation de parenthèses pour la portée est déroutante, alors les numéros de ligne sont sorciers.
aj.toulan

2
Un correctif amélioré pour la demande de numéro de ligne, numéro 17535, vient d'être fusionné. Voir ma réponse pour plus de détails.
Terry Jan Reedy

15

Il existe un ensemble d'extensions utiles à IDLE appelé IDLEX qui fonctionne avec MacOS et Windows http://idlex.sourceforge.net/

Il comprend la numérotation des lignes et je le trouve assez pratique et gratuit.

Sinon, il existe un tas d'autres IDE dont certains sont gratuits: https://wiki.python.org/moin/IntegratedDevelopmentEnvironments


2
Croyez-le ou non, j'aime vraiment le VS Code de Microsoft maintenant. C'est un excellent IDE léger avec de très bons plugins python. Cela fonctionne également sous mac / linux / windows. Quel étrange (bon) monde dans lequel nous vivons où Microsoft se lance dans l'open source.
Davos

6

Si vous essayez de localiser quelle ligne a causé une erreur, si vous cliquez avec le bouton droit dans le shell Python où l'erreur de ligne est affichée, un "Aller au fichier / ligne" vous amènera directement à la ligne en question .


2

Comme cela a été mentionné par Davos, vous pouvez utiliser l' IDLEX

Il arrive que j'utilise la version Linux et que de toutes les extensions, je n'avais besoin que de LineNumbers. J'ai donc téléchargé l'archive IDLEX, pris LineNumbers.py, copié dans le dossier lib de Python (dans mon cas, son /usr/lib/python3.5/idlelib) et ajouté les lignes suivantes au fichier de configuration dans mon dossier personnel qui est ~ / .idlerc / config-extensions.cfg:

[LineNumbers]
enable = 1
enable_shell = 0
visible = True

[LineNumbers_cfgBindings]
linenumbers-show = 

Bon piratage! On dirait que IDLE pourrait faire quelque chose de similaire pour incorporer le code et les paramètres à son cfg interne (par opposition aux extensions cfg) et câbler l'option à l'interface graphique. Ils n'ont probablement pas dérangé car IDLEX fournit la fonctionnalité via un mécanisme de plugin.
Davos

2

Les numéros de ligne ont été ajoutés à l'éditeur IDLE il y a deux jours et apparaîtront dans la prochaine version 3.8.0a3 et la version 3.7.5 ultérieure. Pour les nouvelles fenêtres, elles sont désactivées par défaut, mais cela peut être inversé dans la boîte de dialogue Paramètres, onglet Général, section Éditeur. Pour les fenêtres existantes, il existe une nouvelle entrée Afficher (masquer) les numéros de ligne dans le menu Options. Il n'y a actuellement aucun raccourci clavier. On peut sélectionner une ligne ou un bloc de lignes en cliquant sur une ligne ou en cliquant et en faisant glisser.

Certaines personnes peuvent avoir manqué Modifier / Aller à la ligne. Le menu contextuel du clic droit Goto File / Line fonctionne sur la sortie grep (Find in Files) ainsi que sur les trackbacks.


0

Comme @StahlRat a déjà répondu. Je voudrais ajouter une autre méthode pour cela. Il existe un pack d'extensions pour l'éditeur Python idle par défaut .


0

Comme mentionné ci-dessus (un moyen rapide de le faire):

pip install IDLEX

Ensuite, je crée un raccourci sur le bureau (Win10) comme ceci:

C:\Python\Python37\pythonw.exe "C:\Python\Python37\Scripts\idlex.pyw"

Les chemins peuvent être différents et doivent être modifiés:

C:\Python\Python37

(Merci pour les bonnes réponses ci-dessus)


Est-il C:\Python\Python37\pythonw.exe "C:\Python\Python37\Scripts\idlex.pyw"enregistré en tant que .bat sous Windows?
Ynjxsjmh

Tout d'abord, créez le raccourci de pythonw.exe sur le bureau. Ensuite, cliquez avec le bouton droit sur le raccourci -> propriété ou attribut (R). Troisièmement, remplissez Target (T): avec C:\Python\Python37\pythonw.exe "C:\Python\Python37\Scripts\idlex.pyw". terminé.
Aaron

Merci, mais j'ai trouvé que nous pouvons créer un idlex.batfichier comme ce que Python36\Lib\idlelib\idle.batfait et créer un raccourci pour idlex.bat.
Ynjxsjmh
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.