Seite 1 von 1

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

Verfasst: Donnerstag 7. Juni 2018, 13:22
von Oppugnator
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.

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

Verfasst: Donnerstag 7. Juni 2018, 14:02
von Sirius3
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

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

Verfasst: Donnerstag 7. Juni 2018, 14:45
von Oppugnator

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?

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

Verfasst: Donnerstag 7. Juni 2018, 14:57
von Sirius3
Wo tritt der SyntaxError auf? Was fehlt in der Zeile davor?

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

Verfasst: Donnerstag 7. Juni 2018, 15:18
von Oppugnator

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>

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

Verfasst: Donnerstag 7. Juni 2018, 15:47
von Sirius3
Was fehlt in der Zeile davor?

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

Verfasst: Donnerstag 7. Juni 2018, 16:19
von ThomasL
Noch ein Tipp: Du rufst setup mit Parametern auf die wie getrennt werden?