Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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