2015-12-01 6 views
2

J'utilise IntelliJ IDEA 14 Ultimate et je voudrais exécuter un script Python (dans un serveur Tomcat) à partir de l'IDE.Utiliser un script Python comme outil externe dans IntelliJ IDEA

je l'ai fait sous Windows mais pas multi-plateforme et je pense que c'est un truc ...

C'est ce que je l'ai fait:

  • I défini C:\Python27\python.exe comme programme
  • j'ai ajouté mon script comme un paramètre: initDB.py

Screenshot: New external tools

Cela fonctionne bien sur Windows mais je dois redéfinir ce chemin sur mes autres ordinateurs et mes collaborateurs doivent le faire aussi. Donc, ma question est: est-ce que je peux utiliser un script Python comme un outil externe sans spécifier mon script en tant que parameter?

Merci pour l'aide.

Répondre

1

Il y a plusieurs choses que vous pouvez faire pour améliorer un peu la situation.

Comme décrit dans Single script to run in both Windows batch and Linux Bash?, il est possible de créer un seul script que vous pouvez exécuter en tant que fichier de commandes Windows et en tant que fichier Linux bash. Vous pouvez par exemple créer un fichier /Freek/Scripts/initDB.cmd avec le contenu suivant:

:; /usr/bin/python initDB.py; exit $? 
C:\Programs\Python27\python.exe initDB.py 

La définition vous outil externe est stocké dans un fichier XML bien lisible. Par exemple, sur mon ordinateur portable Windows, il est dans le fichier C:\Users\Freek\.IdeaIC15\config\tools\External Tools.xml, qui contient:

<toolSet name="External Tools"> 
    <tool name="Test (Python)" description="Simple Python script" showInMainMenu="true" 
     showInEditor="true" showInProject="true" showInSearchPopup="true" disabled="false" 
     useConsole="true" showConsoleOnStdOut="false" showConsoleOnStdErr="false" 
     synchronizeAfterRun="true"> 
    <exec> 
     <option name="COMMAND" value="/Freek/Scripts/initDB.cmd" /> 
     <option name="PARAMETERS" /> 
     <option name="WORKING_DIRECTORY" value="/Freek/Scripts" /> 
    </exec> 
    </tool> 
</toolSet> 

Ce fichier peut être (partiellement) copié d'une machine à l'autre et ne contient pas de dépendances de plate-forme si vous pouvez décider d'un répertoire commun/lien pour tous les systèmes d'exploitation (comme /Freek/Scripts, qui fonctionne également sous Windows).

+0

Cela m'a beaucoup aidé, merci. Merci de m'aider avec ma première question aussi. – Ankirama

+0

Vous êtes les bienvenus. J'espère que vous pourrez le faire fonctionner. –