#1 Le 21/08/2011, à 19:25
- Autiwa
[contourné] alias (avec variable) : lancer un script python via Gimp
Je découvre depuis hier comment contrôler Gimp à l'aide de python pour automatiser des tâches. Le simple lancement du script m'a donné du mal et comme la commande est longue comme le bras, j'ai souhaité en faire un alias. Seulement voilà, avec les imbrications de simple et double quote, je suis complètement perdu, je n'arrive pas à résoudre le soucis, je m'en remet donc à la communauté.
La ligne pour lancer le script test.py du répertoire courant est :
gimp -idf --batch-interpreter python-fu-eval -b 'import sys; sys.path=["."]+sys.path;import test;test.run(".")' -b 'pdb.gimp_quit(1)'
Ce qui me pose problème, c'est le passage d'argument.
Je me suis basé sur http://www.marksanborn.net/linux/creati … h-aliases/ où un exemple contient la définition d'un alias avec argument
Je fais donc
alias pygimp="gimp -idf --batch-interpreter python-fu-eval -b 'import sys; sys.path=[\".\"]+sys.path;import ${1%.py};${1%.py}.run(\".\")' -b 'pdb.gimp_quit(1)'"
mais les arguments ne sont pas affichés (je ne sais pas pourquoi) et j'ai l'erreur suivante :
import sys; sys.path=["."]+sys.path;import ;.run(".")
^
SyntaxError: invalid syntax
batch command experienced an execution error
PS : Pour info, l'exemple du lien que j'ai utilisé est :
Using aliases with variables
You can use variables in aliases if you want to get more use out of them.
alias psx="ps -auxw ¦ grep $1"
This will except a variable in the alias. For example you could type this command:
$ psx ssh
This will print out detailed information about the ssh process.
Dernière modification par Autiwa (Le 22/08/2011, à 22:16)
Pensez à éditer le titre du sujet (en éditant le premier message) pour rajouter un "[Résolu]" ça évite à ceux qui veulent donner un coup de main, d'ouvrir un sujet où il n'y a plus d'aide à donner.
Hors ligne
#2 Le 22/08/2011, à 17:30
- aduxas
Re : [contourné] alias (avec variable) : lancer un script python via Gimp
Comment est-ce que tu utilises ton alias? Comme ceci?
pygimp test.py
Que donne
alias pygimp
En gros, je pense que ton alias ne contient pas l'expression correcte pour les arguments modifiés; et en plus, un alias, étant un simple synonyme, ne peut utiliser des arguments; il faut faire un script pour cela. P.e.
alias LS="ls \$1"
alias LS
alias LS='ls $1'
touch fic2
LS fic1 fic2
ls: cannot access fic1: No such file or directory
fic2
Il n'aurait du rien dire au sujet de fic2! Donc,crée plutot un script pygimp.
Dernière modification par aduxas (Le 22/08/2011, à 17:44)
Hors ligne
#3 Le 22/08/2011, à 18:41
- Autiwa
Re : [contourné] alias (avec variable) : lancer un script python via Gimp
Merci pour le coup de main.
Je viens de tester
alias pygimp='gimp -idf --batch-interpreter python-fu-eval -b "import sys; sys.path=[\'.\']+sys.path;import \$1;\$1.run(\'.\')" -b "pdb.gimp_quit(1)"'
sans succès.
J'ai aussi inversé les simple et double quote, ce qui donne :
alias pygimp="gimp -idf --batch-interpreter python-fu-eval -b 'import sys; sys.path=[\'.\']+sys.path;import \$1;\$1.run(\'.\')' -b 'pdb.gimp_quit(1)'"
que je teste avec
pygimp test.py
j'ai alors droit à l'erreur suivante :
File "<string>", line 1
import sys; sys.path=["."]+sys.path;import $1;$1.run(".")
^
SyntaxError: invalid syntax
batch command experienced an execution error
Dernière modification par Autiwa (Le 22/08/2011, à 18:42)
Pensez à éditer le titre du sujet (en éditant le premier message) pour rajouter un "[Résolu]" ça évite à ceux qui veulent donner un coup de main, d'ouvrir un sujet où il n'y a plus d'aide à donner.
Hors ligne
#4 Le 22/08/2011, à 22:13
- aduxas
Re : [contourné] alias (avec variable) : lancer un script python via Gimp
je ne crois pas que tu y arriveras jamais avec un alias. Mets ceci dans un fichier appelé "pygimp"
#
gimp -idf --batch-interpreter python-fu-eval -b 'import sys; sys.path=["."]+sys.path;import ${1%.py};${1%.py}.run(".")' -b 'pdb.gimp_quit(1)'
Rends-le exécutable (chmod +x) et essaye
./pygimp test.py
Dernière modification par aduxas (Le 22/08/2011, à 22:16)
Hors ligne
#5 Le 22/08/2011, à 22:15
- Autiwa
Re : [contourné] alias (avec variable) : lancer un script python via Gimp
Oui, c'est ce que j'ai fait. Mais l'alias est toujours défini, malgré ma modification du .bashrc et l'appel de "source .bashrc", donc ça me bloque l'appel du script. Je testerai demain, mais il n'y a aucune raison que ça ne fonctionne pas avec un script (et puis avec un script je peux me débrouiller).
Merci de ton aide !
Pensez à éditer le titre du sujet (en éditant le premier message) pour rajouter un "[Résolu]" ça évite à ceux qui veulent donner un coup de main, d'ouvrir un sujet où il n'y a plus d'aide à donner.
Hors ligne
#6 Le 22/08/2011, à 22:16
- aduxas
Re : [contourné] alias (avec variable) : lancer un script python via Gimp
unalias pygimp
Hors ligne
#7 Le 22/08/2011, à 22:20
- Autiwa
Re : [contourné] alias (avec variable) : lancer un script python via Gimp
Great! je ne connaissais pas!
Du coup, j'ai testé et le script suivant, enregistré en tant que pygimp, fonctionne :
#!/bin/bash
gimp -idf --batch-interpreter python-fu-eval -b "import sys; sys.path=['.']+sys.path;import ${1%.py};${1%.py}.run('.')" -b "pdb.gimp_quit(1)"
Pensez à éditer le titre du sujet (en éditant le premier message) pour rajouter un "[Résolu]" ça évite à ceux qui veulent donner un coup de main, d'ouvrir un sujet où il n'y a plus d'aide à donner.
Hors ligne