Développement Python avec Eclipse et PyDev – Introduction (1)

Comment installer, écrire et déboguer facilement des programmes Python avec Eclipse et PyDev sous les distributions GNU/Linux ?

Les versions des logiciels libres utilisés dans cet article sont : Python v.3.5.2, Eclipse v.4.7.2 (Oxygen.2 Release) et PyDev v.6.2.0 sous le système d’exploitation libre Linux Mint 18.3 Édition Cinnamon 64-bits (basé sur Ubuntu 16.04.3 de Canonical Ltd.).

Assurez-vous qu’openJRE (openJava Runtime Environment) et openJDK (openJava Development Kit) – en minimum version 8.x – sont bien installés sur votre ordinateur de développement. Ils devraient l’être par défaut.

1- INTRODUCTION

C’est quoi Python ?

Python est un langage de programmation interprété (sans phase de compilation) orienté objet, multi-paradigmes et multi-plateformes. Il favorise la programmation impérative structurée, fonctionnelle et orientée objet. Il est doté d’un typage dynamique fort, d’une gestion automatique de la mémoire par ramasse-miettes et d’un système de gestion d’exceptions. Il est ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl.

Le langage Python est placé sous une licence libre proche de la licence BSD et fonctionne sur la plupart des plates-formes informatiques, des supercalculateurs aux ordinateurs centraux, de Windows à Unix avec notamment GNU/Linux en passant par macOS, ou encore Android, iOS, et aussi avec Java ou encore .NET. Il est conçu pour optimiser la productivité des programmeurs en offrant des outils de haut niveau et une syntaxe simple à utiliser.

Il est également apprécié par certains pédagogues qui y trouvent un langage où la syntaxe, clairement séparée des mécanismes de bas niveau, permet une initiation aisée aux concepts de base de la programmation.

Documentation libre et gratuite sur Python 3.x

C’est quoi Eclipse ?

Eclipse est un projet, décliné et organisé en un ensemble de sous-projets de développements logiciels, de la fondation Eclipse sous licence Eclipse Public (une licence libre à copyleft faible) visant à développer un environnement de production de logiciels libres qui soit extensible, universel et polyvalent, en s’appuyant principalement sur Java.

Son objectif est de produire et fournir des outils pour la réalisation de logiciels, englobant les activités de programmation (notamment environnement de développement intégré – EDI et frameworks) mais aussi d’AGL (atelier de génie logiciel) recouvrant modélisation, conception, test, gestion de configuration, reporting… Son EDI (environnement de développement intégré), partie intégrante du projet, vise notamment à supporter tout langage de programmation, dont Python via PyDev – C – C# – C++ – Cobol – HTML – Java – JavaScript – Pascal – Perl (EPIC) – PHP (PDT) – Ruby – SQL – XML – XUL – etc., à l’instar de Microsoft Visual Studio.

Bien qu’Eclipse ait d’abord été conçu uniquement pour produire des environnements de développement, les utilisateurs et contributeurs se sont rapidement mis à réutiliser ses briques logicielles pour des applications clientes classiques. Cela a conduit à une extension du périmètre initial d’Eclipse à toute production de logiciel : c’est l’apparition du framework Eclipse RCP (plateforme client riche) en 2004.

Figurant parmi les grandes réussites de l’open source, Eclipse est devenu un standard du marché des logiciels de développement, intégré par de grands éditeurs logiciels et sociétés de services.

Documentation d’Eclipse
  • Consultez la documentation très bien fournie (en anglais) qui est incluse dans l’application Eclipse.
  • Vous pouvez aussi consulter celle disponible sur le site d’Eclipse : Eclipse documentation.

C’est quoi PyDev ?

PyDev est un plugin tiers Python qui permet à Eclipse d’être utilisé comme un environnement de développement intégré (EDI) Python, supportant aussi Jython (un interprèteur Python écrit en Java) et IronPython (une implémentation du langage Python, visant .NET et Mono). Il est sous licence Eclipse Public (une licence libre à copyleft faible). Il utilise des techniques avancées d’inférence de type qui lui permettent de fournir des fonctionnalités telles que l’auto-complétion et l’analyse de code, en plus de fournir un débogueur, une console graphique interactive, la refonte de code, un navigateur de jetons, une intégration Django, etc.

Documentation PyDev

Python, Eclipse et PyDev sous GNU/Linux

Python – Interactive high-level object-oriented language

Sous la distribution Linux Mint 18.3 LTS, comme sous Ubuntu 16.04.3 LTS et ses variantes-dérivées, Python est normalement installé par défaut en deux versions, la 2.7.12 (devenue obsolète) et la 3.5.2 (à choisir pour de nouveaux développements). De ce fait, Python est directement utilisable depuis un Terminal (CTRL+ALT+T), voir Interprète (informatique).

En tapant python ou python2 dans un Terminal, nous obtenons :

joe@joe-mint18 ~ $ python
Python 2.7.12 (default, Dec 4 2017, 14:50:18) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> _

En tapant python3 dans un Terminal, nous obtenons :

joe@joe-mint18 ~ $ python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> _

Les 3 chevrons >>> indiquent ci-dessus que l’interpréteur Python 2.7 ou 3.5 est prêt à travailler pour nous !

Eclipse – Extensible Tool Platform and Java IDE

La version d’Eclipse disponible dans le Gestionnaire de logiciels (Logithèque) de Linux Mint 18.3 LTS 64-bits, comme d’ailleurs d’Ubuntu 16.04.3 LTS, est bien trop vieille et complètement dépassée. En effet c’est la 3.8.1-8 de 2012 qui est proposée, complètement « has been » !

Pour avoir la dernière version d’Eclipse Oxygen.2, le plus simple est de se rendre sur le site du projet et de télécharger l’installeur de la version 4.7.2 (eclipse-inst-linux64.tar.gz) de décembre 2017, puis de décompresser ce fichier quelque part dans votre répertoire /home dans un dossier que vous choisirez, puis à l’intérieur de celui-ci de double-cliquer sur le fichier eclipse-inst, et enfin de suivre les instructions d’installation qui s’affiche à l’écran.

Eclipse 4.7 : la fenêtre d’accueil Welcome (qui peut être affichée ou non au lancement)

Nota bene : Pour éviter des problèmes de mise à jour du programme, des changements importants par rapport à la branche v.3.x sont intervenus. Eclipse 4.7.2 est maintenant installé par défaut dans le répertoire /home/nom-utilisateur/eclipse/java-oxygen/eclipse et le répertoire de travail par défaut Workspace dans /home/nom-utilisateur/eclipse-workspace.

Eclipse 4.7 : la fenêtre principale de travail Workbench

Pour lancer Eclipse, double-cliquez sur le fichier eclipse dans le répertoire d’installation ci-dessus (le premier du Nota Bene).

Si le lanceur Eclipse n’apparaît pas dans le Menu Programmation de Linux Mint, ajoutez-le en ouvrant le Cinnamon Menu Editor -> Programmation -> Nouvel élément -> Launcher Properties et complétez avec les entrées suivantes :
Name: Eclipse (4.7.2)
Command: /home/nom-utilisateur/eclipse/java-oxygen/eclipse/eclipse
Comment: An Integrated Development Environment (IDE) used in computer programming
Launch in Terminal?: Ne cochez pas la casse !
Icon: Pour personnaliser l’icône, Cliquez sur l’icône par défaut -> Choose an icon -> Entrez le chemin /home/nom-utilisateur/eclipse/java-oxygen/eclipse/icon.xpm

PyDev – Python IDE (Integrated Development Environment) for Eclipse

La version de PyDev disponible dans le Gestionnaire de logiciels (Logithèque) de Linux Mint 18.3 LTS 64-bits, comme d’ailleurs d’Ubuntu 16.04.3 LTS, est bien trop vieille et complètement dépassée. En effet c’est la 3.9.2-4 de 2012 qui est proposée, complètement « has been » !

Pour avoir la dernière version 6.2.0 de PyDev, le plus simple est de la télécharger et de l’installer directement depuis Eclipse. Pour ce faire, lancez Eclipse -> Menu -> (Workbench ->) Help -> Eclipse Marketplace… -> Tapez PyDev dans le champ Find et validez par Entrée -> L’entrée PyDev – Python IDE for Eclipse 6.2.0 s’affiche -> Cliquez sur son bouton Install -> Suivez les indications à l’écran.

Il faut maintenant configurer PyDev pour qu’il utilise la bonne version de Python installé sur Linux Mint. Toujours dans Eclipse -> Menu -> (Workbench ->) Windows -> Preferences -> PyDev -> Interpreters -> Python Interpreter -> Cliquez sur le bouton New… -> Dans la fenêtre Select interpreter remplissez la ligne Interpreter Name: avec Python v.3.5 et Interpreter Executable: avec /usr/bin/python3.5 et validez en cliquant sur le bouton OK. Puis suivez les instructions à l’écran et à la fin relancer Eclipse.

Eclipse 4.7 : Déclaration de l’interpréteur Python pour le plugin PyDev

Nota Bene : Pour des programmes Python simples, des scripts plus ou moins courts, nous aurions aussi pu utiliser soit directement le Terminal pour y lancer Python en mode interactif -ou- Xed, l’éditeur de texte de Linux Mint (en Affichage Mode de coloration Script Python 3), écrire le programme et sauvegarder le fichier créé avec une extension .py afin de pouvoir le lancer en tant que script Python (le débogage pouvant prendre un certain temps).

Écriture d’un petit script Python avec l’éditeur de texte « xed » de Linux Mint 18.3, sauvegardé dans un fichier avec l’extension .py, et exécuté en mode interactif dans un Terminal avec la commande « python3.5 -i nom-du-fichier.py »

Si vous voulez tester ce script Python, voici sa version texte (légérement modifiée) que vous pouvez directement copier-coller dans votre éditeur.
# Les croisillons # précèdent les commentaires et Python n'en tient pas compte !
# Ce script est écrit avec l'Éditeur de texte 'xed' de Linux Mint 18.3
#   en Affichage Mode de coloration 'Script Python 3'
# Les lignes 4 et 5 ci-dessus indiquent au fichier 'TableDeMultiplication.py'
#   le chemin absolu de l'interpréteur Python 3.5 sous Linux Mint 18.3
#   et l'encodage du texte.
# Ces 2 lignes doivent se trouver tout au début du script Python (partie code) !
#!/usr/bin/python3.5 # Ici un cas particulier du # et Python le prend en compte !
# -*-coding:UTF-8 -* # Ici un cas particulier du # et Python le prend en compte !
# FONCTION Utilisateur calculant la Table de Multiplication par nb de 1*nb à maxi*nb
def table(nb, maxi):
    i = 0 # Le compteur i avec valeur 0 au départ
    while i < maxi: # Tant que i est strictement inférieur à la variable maxi
        print(i + 1, '*', nb, '=', (i + 1) * nb) # Pour afficher le résultat des calculs
        i += 1 # Incrémentation i de 1 à chaque tour de boucle
# POUR LANCER CE SCRIPT: en étant dans le répertoire où il se trouve,
#   ouvrez un Terminal et entrez-y la commande:
#   'python3.5 -i TableDeMultiplication.py' (sans les guillemets) et validez par Entrée.
print('- Lorsque vous verrez ci-dessous les 3 chevrons de Python, entrez votre table
de multiplication sous la forme table(nb, maxi) et validez par Entrée.
Par exemple table(76, 10) va vous afficher la table des 76, de 1x76=76 jusqu'à 10x76=760.
\n- À chaque apparition des 3 chevrons vous pouvez recommencer avec une nouvelle table.
\n- Pour quitter le programme tapez après les 3 chevrons: quit() et validez par Entrée.')
# Une fois ce script sauvegardé avec l'extension .py, vous pouvez aussi le rendre
#   exécutable en modifiant dans ses Propriétés -Permissions -Exécution -Cochez
#   la case devant Autoriser l'exécution du fichier comme un programme !

Nota bene : Le passage de WordPress 4.9.9 à 5.0+ (changement de paradigme) a déstructuré le code ci-dessus. Il a fallu le reprendre pour l’adapter aux nouvelles règles de ce CMS !

Mais, dès que les programmes (scripts) Python prendront de l’ampleur et de la complexité, la puissance et les possibilités d’Eclipse+PyDev prendront tout leur sens, même si Eclipse/PyDev demandent un certain temps pour être maîtrisés.

Maintenant que Python, Eclipse et PyDev sont opérationnels sous Linux Mint 18.3, nous pouvons passer à l’écriture d’un programme Python avec Eclipse pour tester notre installation.

Lire la suite…
=> Développement Python avec Eclipse et PyDev – Écrire et déboguer un programme (2)