2017-09-18 1 views
0

A partir de ce fil stackoverflow https://stackoverflow.com/questions/4443...mmand-line, j'ai extrait cette ligne de commande:Comment puis-je lancer la ligne de commande GIMP à partir d'un script Python?

gimp-console -idf --batch-interpreter python-fu-eval -b "import sys;sys.path=['.']+sys.path;import batch;batch.run('./images')" -b "pdb.gimp_quit(1)" 

Il fonctionne parfaitement bien.

Maintenant, je voudrais exécuter cette commande à partir d'un script Python, généralement j'utilise subprocess.Popen, mais cette fois-ci ne fonctionne pas et je reçois ce message:

"batch command experienced an execution error" 

Comment puis-je lancer la ligne de commande GIMP à partir d'un script Python?

+0

Montrez * comment * vous avez essayé d'utiliser 'subprocess.Popen'. –

Répondre

-1

Un moyen facile de résoudre c'est de mettre juste votre script de démarrage GIMP dans un script bash, dire startgimp.sh

#!/bin/bash 
#set your path to GIMP or cd into the folder where you installed GIMP 
gimp-console -idf --batch-interpreter python-fu-eval -b "import sys;sys.path=['.']+sys.path;import batch;batch.run('./images')" -b "pdb.gimp_quit(1)" 

puis de Python il suffit d'appeler le script bash comme si

import subprocess 
subprocess.call(["bash","/path/to/your/script/startgimp.sh"]) 

Si vous êtes en mesure de rendre le script .sh exécutable, par exemple chmod +x startgimp.sh alors vous pouvez sauter la partie de bash et juste faire subprocess.call("/path/to/your/script/startgimp.sh")

Quelques mises en garde

  • Ceci suppose que vous êtes sur un système UNIX
  • J'utilisé subprocess.call si cela bloquerait en attendant GIMP à compléter. Utilisez Popen comme vous l'avez utilisé si vous ne le voulez pas
  • Je n'ai pas GIMP à essayer, mais vous pouvez aussi essayer de scinder votre commande GIMP en éléments dans la liste et la passer en sous-processus et voir si ça marche.

par exemple. subprocess.call(["gimp-console","-idf","--batch-interpreter","python-fu-eval" and so on)

+0

Bonne idée, mais j'utilise windows :-(. Je vais essayer wiith .bat – albertParis