Modul lässt sich nicht importieren

Probleme bei der Installation?
Antworten
Ubidubinubi
User
Beiträge: 6
Registriert: Mittwoch 29. September 2010, 10:09

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!
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.
Ubidubinubi
User
Beiträge: 6
Registriert: Mittwoch 29. September 2010, 10:09

Auch wenn die GIMP GUI läuft, lässt sich das gimp Modul mit IDLE nicht importieren.
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.
Ubidubinubi
User
Beiträge: 6
Registriert: Mittwoch 29. September 2010, 10:09

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...
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Naja, wenn du kein Plugin fuer GIMP schreiben willst, solltest du dir besser eine unabhaengige Bildverarbeitungsbibliothek suchen, PIL z.B.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Ubidubinubi
User
Beiträge: 6
Registriert: Mittwoch 29. September 2010, 10:09

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.
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.
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Bei SVG denke ich zuerst mal an Inkscape. Ist das vielleicht besser geeignet?
Ubidubinubi
User
Beiträge: 6
Registriert: Mittwoch 29. September 2010, 10:09

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!?
BlackJack

@Ubidubinubi: Das sollte möglich sein.
Ubidubinubi
User
Beiträge: 6
Registriert: Mittwoch 29. September 2010, 10:09

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]
Antworten