PIL mit py2exe: _imagingft C module is not installed

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
firetry
User
Beiträge: 4
Registriert: Mittwoch 28. Dezember 2011, 16:40

Hallihallo!
Ich habe mir in Python 2.6 ein Programm geschrieben, welches gewisse Dinge in Luftbilder einzeichnet. Dazu verwende ich PIL 1.1.6.
Das Programm funktioniert prima, auf meinem Rechner sowohl in Idle, als auch als exe.
Auf einem anderen Rechner aber funktioniert nur das Python-Script. Die exe endet mit oben genannter Fehlermeldung.
Mir ist jetzt sehr unklar, was hier der Grund sein kann. Die Datei libfreetype habe ich schon mittels setup.py in die exe integriert, das hat aber nichts gebracht.
Habt ihr eine Idee was ich übersehen könnte?
Wieso funktioniert auf dem anderen Rechner nur die exe nicht? :K Ich verstehe es nicht...eigentlich müsste doch alles da sein!
Beste Grüße,
Frank
firetry
User
Beiträge: 4
Registriert: Mittwoch 28. Dezember 2011, 16:40

Hm, scheinbar kann so niemand etwas mit dem Problem anfangen. Vielleicht klappt es besser wenn ich den Fehler etwas genauer beschreibe. Vorab das setup.py, mit dem ich py2exe laufen lasse:

Code: Alles auswählen

from py2exe.build_exe import py2exe 
from distutils.core import setup
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
from PIL import ImageOps

import math
from PIL import JpegImagePlugin
from PIL import TiffImagePlugin
import time
import os
Mydata_files = [("",["Pfad\\PIL._imagingft.pyd"])]

setup( 
      console=["Pfad\\cut.py"], 
      data_files=Mydata_files #[]("Pfad\\",("libfreetype-6.dll"))
      )
Die Fehlermeldung beim Ausführen der exe auf einem anderen Computer (auf dem Wohlgemerkt das Programm als Pythonversion funktioniert) lautet:
Traceback (most recent call last):
File "cut.py", line 585, in (module)
File "PIL\ImageFont.pyc", line 218, in truetype
File "PIL\ImageFont.pyc", line 134, in __init__
File "PIL\ImageFont.pyc", line 134, in __getattr__
Import Error: the _imagingft C module is not installed
Sagt das vielleicht jemandem etwas oder soll ich noch ein Minimalbeispiel des codes erstellen?
Ahoi,
Frank
BlackJack

@firetry: Bei ``"Pfad\\PIL._imagingft.pyd"`` gibt es keine Warnung oder so? Das ist weder ein Pfad noch ein gültiger Modul- oder Package-Name.
firetry
User
Beiträge: 4
Registriert: Mittwoch 28. Dezember 2011, 16:40

"Pfad seht natürlich für den entprechenden Pfad eben auf meinem Rechner, in dem die Datei tatsächlich liegt. Aber Danke für den Tip, Blackjack!
BlackJack

@firetry: Das war mir schon klar und es ändert nichts daran, dass das weder ein Pfad zu einer existierenden Datei noch ein gültiger Modul- oder Package-Name ist!
firetry
User
Beiträge: 4
Registriert: Mittwoch 28. Dezember 2011, 16:40

Das verstehe ich nicht...wenn doch die Datei in dem angegebenen Verzeichnis liegt? Hm, in jedem Fall meinst du, diese Datei sei kein Modul...? Welche Datei entspräche denn dem _imagingft C Modul??
Frank
BlackJack

@firetry: Die Datei die Du da angegeben hast gibt es nicht. Es gibt vielleicht eine ``_imagingft.pyd`` die in einem Unterverzeichnis mit dem Namen ``PIL`` liegt, aber eine Datei ``PIL._imagingft.pyd`` gibt es sicherlich nicht. Du bringst da die Schreibweise von Pfaden im Dateisystem und Modul-/Paket-Namen in Python durcheinander.
Antworten