Seite 1 von 1

Problem mit py2exe und win32com.client dispatch

Verfasst: Dienstag 18. August 2009, 16:18
von makro
hallo,

ich habe eine kleine anwendung in python geschrieben die über die funktion "Disptach" auf Excel zugreift. Ich programmiere mit eclipse-python. das programm funktioniert auch alles soweit!
ich wollte nun mit Hilfe von py2exe eine exe-Datei daraus erstellen. Beim starten kommt dann eine Meldung, dass ein Fehler aufgetreten ist.
In der logdatei steht:

from win32com.client import Dispatch
ImportError: No module named win32com.client

Kann mir jemand weiterhelfen, warum es nicht mehr funktioniert, sobald ich daraus eine exe-Datei mache bzw. was ich tun muss, damit es auch unter einer exe funktioniert!

mfg

Verfasst: Dienstag 18. August 2009, 16:40
von cofi
py2exe hat hin und wieder Probleme alle benoetigten Pakete zusammenzupacken.

Versuch mal ``import win32com.client`` und dann eben die vollstaendige Angabe von Dispatch ``win32com.client.Dispatch``

Wenn du daran nichts aendern willst, musst du in der ``setup.py`` an den py2exe Konfiguration herumschrauben. (Stichwoerter dafuer ``packages``, ``include`` - einfach mal im Forum oder auf der py2exe-Seite suchen)

Verfasst: Mittwoch 19. August 2009, 10:10
von KurrKurr
Ich hab da ein ganz ähnliches Problem:

Bei mit findet er das Modul win32api.pyd nicht. Ich habe mittels win32com.client.Dispatch einen DSOleFile.PropertyReader eingebunden.

Mit py2exe tritt der Fehler auf, dass er win32api.pyd nicht findet. Mit pyinstaller funktioniert die Anwendung auch leider nicht.

Hat da jemand schon Erfahrungen mit diesem Problem gemacht?

Chris

Verfasst: Mittwoch 19. August 2009, 11:44
von makro
hallo,

also ich habs jetzt hinbekommen. hab folgendes im web gefunden:

try:
# if this doesn't work, try import modulefinder
import py2exe.mf as modulefinder
import win32com
for p in win32com.__path__[1:]:
print p
modulefinder.AddPackagePath("win32com", p)
for extra in ["win32com.shell"]: #,"win32com.mapi"
__import__(extra)
m = sys.modules[extra]
for p in m.__path__[1:]:
modulefinder.AddPackagePath(extra, p)
except ImportError:
# no build path setup, no worries.
pass

dabb hats funktioniert :)

Verfasst: Donnerstag 20. August 2009, 19:14
von Leonidas
Ich glaube aber das was du im Netz gefunden hast war eingerückt, oder?