Problem mit py2exe und win32com.client dispatch

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
makro
User
Beiträge: 25
Registriert: Sonntag 12. Juli 2009, 08:53

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
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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)
KurrKurr
User
Beiträge: 12
Registriert: Donnerstag 6. August 2009, 13:05
Kontaktdaten:

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
makro
User
Beiträge: 25
Registriert: Sonntag 12. Juli 2009, 08:53

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 :)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich glaube aber das was du im Netz gefunden hast war eingerückt, oder?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten