vendredi 30 août 2013

Editer des fichiers Python avec IDLE depuis WinSCP

For an english version of this article, follow this link : http://antoine-agthe.blogspot.com/2013/08/edit-python-files-with-idle-from-winscp.html

Qu'est-ce que WinSCP ?

WinSCP pour Windows est un outil simple et puissant pour qui désire travailler sur son serveur via SSH tout en bénéficiant de ses outils d'édition favoris, sur son OS favoris (je reste neutre, j'ai jamais dit que c'était mon cas … Je n'ai pas dit le contraire non plus)

Qu'est-ce que Python (vite fait) ?

Python, quant à lui, offre un rapport simplicité/performance plus que correct, que ce soit pour des développements lourds ou dans un usage type script shell.
C'est par ailleurs un très bon langage pour qui voudrait découvrir le monde merveilleux de la programmation.


Contexte

Dans le cadre d'un projet nécessitant une connexion Facebook depuis un serveur pour des traitements périodiques via CRON, j'ai privilégié l'usage d'un script en Python.

Le serveur étant une instance Amazon EC2 sous Ubuntu LTS, et mon environnement de dev étant sous Windows 7, j'avais besoin d'un moyen simple de rapatrier directement le script depuis le serveur, de pouvoir le modifier en local, et de synchroniser ces modifications sur le serveur rapidement.

J'utilise WinSCP depuis assez longtemps maintenant, car il offre cette capacité de synchronisation d'un fichier "remote" modifié en local via un fichier temporaire dont il observe les modifications.

Cependant, l'éditeur par défaut de WinSCP est loin d'être pratique quand il s'agit de modifier des fichiers Python. Si Notepad++ est mon éditeur pour de nombreux formats de fichier, il ne me satisfait pas autant que l'éditeur par défaut de Python, IDLE, fourni avec l'installeur.


Problème

Faire de IDLE l'éditeur par défaut des fichiers Python sur WinSCP n'est pas aussi simple qu'avec Notepad++, car IDLE n'est pas un exécutable à proprement parler.
IDLE est en réalité un script Python qui, s'exécutant, produit un GUI.
Ce n'est donc pas un lien vers une application que vous devez entrer dans la configuration de WinSCP, mais une ligne de commande.


Solution

La solution se trouve dans la base de registre.
Rassurez-vous, nul besoin ici de modifier cette base. Elle m'a juste été nécessaire pour connaître la ligne de commande à utiliser.

Sous Windows, quand on souhaite éditer un fichier Python, on ouvre le menu contexte du fichier (clic droit), puis on sélectionne Edit with IDLE.
Si vous ne le savez pas encore, vous apprendrez donc que ces fonctions contextuelles sont rassemblées dans la base de registre.

Pour trouver cette fonction, j'ai tout simplement exécuté regedit.exe ( touche Windows + R, saisissez regedit), puis j'ai recherché (Ctrl+F, ou menu Edition->Rechercher) l'expression Edit with IDLE.

Je suis donc tombé sur l'entrée HKEY_CLASSES_ROOT\Python.File\shell\Edit With IDLE qui contient une clé command dont la valeur est justement une ligne de commande permettant d'ouvrir un fichier python avec IDLE :

"C:\Python27\pythonw.exe" "C:\Python27\Lib\idlelib\idle.pyw" -e "%1"

Il suffit donc, pour profiter d'IDLE via WinSCP, d'ouvrir la fenêtre des Préférences de WinSCP sur l'onglet "Editeurs", et d'ajouter une nouvelle préférence pour les fichiers d'extension .py et d'utiliser un éditeur externe, en spécifiant :

C:\Python27\pythonw.exe C:\Python27\Lib\idlelib\idle.pyw -e "!.!"




Aucun commentaire:

Enregistrer un commentaire