Rufen Sie MS Access-Modul-Funktion von Python nach dem Kompilieren mit py2exe fehlschlägt

Ich habe die Python-Code unten für ca. ein Jahr jetzt ausgeführt. Aber ich gehe auf einen neuen Job. Um die Dinge einfach für die Abteilung zu machen, die ich verlasse, möchte ich diesen Code in eine .exe-Datei kompilieren.

Ich habe versucht, Kompilieren gegen Python 2.5 und 2.7 mit den gleichen Ergebnissen.

Aber wenn beim Ausführen der Exe-Datei bekomme ich den folgenden Fehler

H:\development\DMS_Import_Data\dist>import_data.exe Run Live or Development Import (L = Live, D = Dev, X = Exit):l 5:3:2012 10:56 Opening Live Database... 5:3:2012 10:56 Assuming Database already open 5:3:2012 10:56 Importing latest DMS Data... Traceback (most recent call last): File "import_data.py", line 79, in <module> File "import_data.py", line 46, in run File "<COMObject Access.Application>", line 2, in run pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, u'You made an illegal function call.', None, -1, -2146820336), None) 

Hier ist der Python-Code. Das Problem ist mit der letzten Zeile in diesem Block datatype = conn.run ("import data")

 import win32com.client import pythoncom import time import datetime import os import string class ProcessDMSData: sleepTime = 3600 ref_date = '' def set_ref_date(self,ref_date): self.ref_date = ref_date def run(self): run_type = "" while True: pythoncom.CoInitialize() check_values = ["L", "D", "X"] while run_type.upper() not in check_values: run_type = raw_input ("Run Live or Development Import (L = Live, D = Dev, X = Exit):") if run_type.upper() == "L": update_type = "Live" database_path = "G:\\Eurofighter programme Management\\1.PM Reporting\\Production Tracking Database\\booking_planeset_tracker_data.mdb" elif run_type.upper() == "D": update_type = "Development" database_path = "G:\\Eurofighter programme Management\\1.PM Reporting\\Production Tracking Database\\dev_dms_tracker_data.mdb" elif run_type.upper() == "X": quit() print "%s Opening %s Database..." % (self.get_date_time(), update_type) conn=win32com.client.Dispatch('Access.Application' ) try: conn.OpenCurrentDatabase(database_path) except: print "%s Assuming Database already open" % (self.get_date_time()) pass print "%s Importing latest DMS Data..." % (self.get_date_time()) datatype = conn.run("import_data") 

Kann jemand helfen, warum dies funktioniert läuft als Skript in Python, aber nicht, wenn es zu einem exe kompiliert wurde.

Danke Simon

One Solution collect form web for “Rufen Sie MS Access-Modul-Funktion von Python nach dem Kompilieren mit py2exe fehlschlägt”

Nach dem Rat von Juri Robi habe ich Pyinstaller heruntergeladen und die Exe kompiliert. Das funktionierte gut mit irgendwelchen Anpassungen. Ich weiß immer noch nicht, warum py2exe nicht funktioniert hat, aber für mich ist Pyinstaller ein tolles neues Werkzeug für mich, das ich in Zukunft wieder verwenden werde.

  • Excel mit win32com und python
  • Win32com + Excel + Django + Apache = Problem
  • TypeError: 'str' -Objekt ist nicht mit win32com-Anbindung an Attachmate aufrufbar
  • Python - Win32com - Öffnen Sie Arbeitsmappe und erstellen Sie eine neue Excel-Datei für jede Registerkarte
  • Automatisierung von Excel mit Win32com auf Linux mit Wein
  • Wie man python win32com verwendet, um als Excel-Datei zu speichern
  • Python win32com - Automatisieren von Word - Wie erstelle ich Text in einem Textfeld?
  • Wie benutzt man win32com.client.constants mit MS Word?
  • Python win32com.adsi Modul begrenzt Anzahl der zurückgegebenen Mitglieder von AD
  • Mit python win32com kann nicht zwei separate Tabellen in MS Word 2007
  • Win32com importiert nicht aus python-Datei - DLL-Last fehlgeschlagen
  • Python ist die beste Programmiersprache der Welt.