XLRD -> py2exe -> auf meinem Rechner läufts, sonst nicht.

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
Oppugnator
User
Beiträge: 3
Registriert: Donnerstag 7. Juni 2018, 13:07

hallo Leute,

ich hab ein kurzes Skript zum Einlesen und Manipulieren von einer Excel Datei geschrieben, und wollte dann das ganze einem "Nicht-Programmierer" Kollegen in
Form einer .EXE geben.

Bei mir am dev Rechner funktioniert sowohl das Skript als auch die .EXE einwandfrei.

Will man jedoch die EXE auf einem anderen Rechner (ebenfalls WIN7, EXCEL installiert und wird regelm. verwendet, etc.) starten, beginnt das Skript zwar zu laufen (Lesen, und Verarbeitung mit Python funktioniert), aber sobald dann in eine Excel Datei geschrieben werden soll -> folgender Fehler:

Code: Alles auswählen

File "zuordnung_SGBM.py", line 55, in <module>
  File "C:\toolbase\python\3.4.3\python-3.4.3.amd64\lib\site-packages\win32com\c
lient\gencache.py", line 540, in EnsureDispatch
    disp_class = CLSIDToClass.GetClass(str(disp_clsid))
  File "C:\toolbase\python\3.4.3\python-3.4.3.amd64\lib\site-packages\win32com\c
lient\CLSIDToClass.py", line 46, in GetClass
    return mapCLSIDToClass[clsid]
KeyError: '{000208D5-0000-0000-C000-000000000046}'
Was ich schon probiert habe:

- ich hab gecheckt, ob EXCEL eh in der DCOMcnfg aufgeführt ist
- habe versucht Berechtigungen neu zu vergeben.


Hat irgendjmd. von euch eine Idee?

Unten stehend noch der Code Abschnitt, der auf fremden Rechnern nicht zu funktionieren scheint:

Code: Alles auswählen

...
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb_real = excel.Workbooks.Open(file_path_xls)
excel.Visible = True
...
PLS Help.
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

win32com macht Probleme, weil es versucht, dynamisch die Interfaces zu Excel zu erzeugen, oder eben nicht.

Wenn man den Fehler googelt, kommt als erster Treffer: py2exe converted script does not run win32com.client correctly
Oppugnator
User
Beiträge: 3
Registriert: Donnerstag 7. Juni 2018, 13:07

Code: Alles auswählen

setup(  
...

zipfile="foo/bar.zip", 
options={"py2exe": {"skip_archive": True}})
der Code soll in die Setup.py?!

soweit so gut.

Code: Alles auswählen

from distutils.core import setup
import py2exe

setup(
console=['zuordnung_SGBM.py']
zipfile="foo/bar.zip", 
options={"py2exe": {"skip_archive": True}})
und nu? ->

SyntaxError

Was verstehe ich falsch?
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Wo tritt der SyntaxError auf? Was fehlt in der Zeile davor?
Oppugnator
User
Beiträge: 3
Registriert: Donnerstag 7. Juni 2018, 13:07

Code: Alles auswählen

C:\Users\****\Desktop\test_excel_file>python setup.py install
  File "setup.py", line 6
    zipfile='foo/bar.zip',
          ^
SyntaxError: invalid syntax

C:\Users\****\Desktop\test_excel_file>
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Was fehlt in der Zeile davor?
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Noch ein Tipp: Du rufst setup mit Parametern auf die wie getrennt werden?
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Antworten