Seite 1 von 1

Modul lässt sich nicht importieren

Verfasst: Mittwoch 29. September 2010, 10:57
von Ubidubinubi
Hallo erstmals,

als Python-Neuling habe ich gleich einmal eine Anfängerfrage.
Ich arbeite unter WindowsXP mit der IDLE Konsole, Python 2.6.5, und möchte das gimp modul importieren, bekomme jedoch den Fehler:

Code: Alles auswählen

>>> import gimp

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    import gimp
ImportError: DLL load failed: Das angegebene Modul wurde nicht gefunden.
Das gimp Modul ist anscheinend vorhanden - help('modules') listet es auf.

Wo liegt da der Fehler?

Ich habe den sys.path der IDLE bereits um jene GIMP-Pfade erweitert, die im sys.path der Gimp-Python-Konsole vorkommen, aber nicht im standardmäßigen sys.path von IDLE:

Code: Alles auswählen

C:\Programme\GIMP-2.0\bin
C:\Programme\GIMP-2.0\lib\babl-0.0
C:\Programme\GIMP-2.0\lib\gegl-0.0
C:\Programme\GIMP-2.0\lib\gimp\2.0\modules
C:\Programme\GIMP-2.0\lib\gtk-2.0\2.10.0\engines
C:\Programme\GIMP-2.0\lib\gtk-2.0\2.10.0\loaders
C:\Programme\GIMP-2.0\lib\gtk-2.0\modules
Und, wenn ich über die GIMP-GUI die Python-fu-Konsole aufrufe, sind das gimp- und pdb-Modul bereits importiert.
Ich möchte mein script als batch process laufen lassen, ohne die GIMP GUI ständig offen haben zu müssen bzw. weiß ich nicht, ob es überhaupt ein Kommando gibt, dass mein py-script mit der Python-fu-Konsole ausführen könnte.

Für etwaige Tipps und Tricks wäre ich sehr dankbar!

Re: Modul lässt sich nicht importieren

Verfasst: Mittwoch 29. September 2010, 11:16
von BlackJack
Die Module müssen zum verwendeten Python-Interpreter passen. Und ich bin mir nicht ganz sicher ob man das Gimp-Modul nutzen kann, ohne das Gimp auch tatsächlich läuft.

Re: Modul lässt sich nicht importieren

Verfasst: Mittwoch 29. September 2010, 11:57
von Ubidubinubi
Auch wenn die GIMP GUI läuft, lässt sich das gimp Modul mit IDLE nicht importieren.

Re: Modul lässt sich nicht importieren

Verfasst: Mittwoch 29. September 2010, 12:08
von lunar
@Ubidubinubi: Das hat gar nichts damit zu tun, ob Gimp läuft oder nicht. Nur weil im irgendeine graphische Anwendung gestartet wurde, verändert der Python-Interpreter nicht magisch seine Version oder den Pfad, in dem Module gesucht werden.

Das Modul gimp enthält die Erweiterungs-API von Gimp, und steht nur zur Verfügung, denn ein Python-Skript innerhalb von Gimp als Erweiterung aufgerufen wird. Von "außen" kann man das nicht benutzen, insbesondere nicht als API zur Bildbearbeitung. Es dient nur dazu, Python-Erweiterungen für Gimp zu schreiben.

Re: Modul lässt sich nicht importieren

Verfasst: Montag 4. Oktober 2010, 08:15
von Ubidubinubi
Danke erstmal für eure Antworten!

Ja, dass das nicht mit der GUI zusammenhängt habe ich vermutet.
Verstehe ich das also richtig, dass ich die GIMP-Module nur mit der GIMP-internen Konsole aufrufen kann (und mit keiner anderen Konsole)?

Also müsste ich einen Weg finden, dass script mit der Python-GIMP-Konsole zu starten, und dann das ganze noch zu automatisieren...

Re: Modul lässt sich nicht importieren

Verfasst: Montag 4. Oktober 2010, 08:58
von Rebecca
Naja, wenn du kein Plugin fuer GIMP schreiben willst, solltest du dir besser eine unabhaengige Bildverarbeitungsbibliothek suchen, PIL z.B.

Re: Modul lässt sich nicht importieren

Verfasst: Montag 4. Oktober 2010, 09:52
von Ubidubinubi
Im Grunde will ich mit GIMP einen Pfad aus einem SVG-file über ein Bild legen, dann eine Auswahl anhand edes Pfades erstellen, mit einer Farbe füllen und das Bild speichern.
Mit PIL habe ich leider keinen Weg gefunden, der dsa ermöglicht. Das ImagePath-modul der PIL kann zwar 2-dimensionale Vektordaten lesen, aber ich habe auch hier noch keinen Weg gefunden, an den Pfad SVG heran zu kommen.

Re: Modul lässt sich nicht importieren

Verfasst: Montag 4. Oktober 2010, 10:02
von BlackJack
@Ubidubinubi: Gimp hat auch eine ganze Reihe von Kommandozeilenoptionen um es zum Beispiel ohne grafische Benutzeroberfläche zu starten oder direkt nach dem Start Script-Fu-Kommandos auszuführen.

Re: Modul lässt sich nicht importieren

Verfasst: Montag 4. Oktober 2010, 10:15
von mkesper
Bei SVG denke ich zuerst mal an Inkscape. Ist das vielleicht besser geeignet?

Re: Modul lässt sich nicht importieren

Verfasst: Montag 4. Oktober 2010, 12:31
von Ubidubinubi
Hm, dann könnte ich ein mit Python geschriebenes Plug-in erstellen, dass mein python-script ausführt, und dass ich über Kommandozeilen-befehle aufrufen kann, sofern das funktioniert!?

Re: Modul lässt sich nicht importieren

Verfasst: Montag 4. Oktober 2010, 13:11
von BlackJack
@Ubidubinubi: Das sollte möglich sein.

Re: Modul lässt sich nicht importieren

Verfasst: Donnerstag 14. Oktober 2010, 13:35
von Ubidubinubi
Ein kleines Update.

Nachdem ich mein Plug-in über die command line nicht so richtig laufen wollte, habe ich nochmals den ursprünglich gedachten Weg versucht, ein py-script direkt über die GIMP-Python-Konsole zu starten, und es hat tatsächlich geklappt.

Der Trick ist, den richtigen Interpreter zu initalisieren, in diesem Fall python-fu-eval.

Damit funktionierts:

Code: Alles auswählen

gimp-2.6 -idf --batch-interpreter python-fu-eval -b execfile(\"scriptname.py\") -b pdb.gimp_quit(1)
[/b][/i]