Python und Vector CANoe

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
PythonMan2019
User
Beiträge: 13
Registriert: Montag 18. Februar 2019, 14:29

Hallo

ich bin neu hier und auch relativ unerfahren mit Python. Ich möchte eigentlich nur mittels Python 2.5 unter Win10 (COM Interface) eine CANoe Konfiguration starten.
Das it mein Code:

Code: Alles auswählen

# Import modules/libraries --------------------------------

from win32com 		import client


_CANoe_Appl = client.dynamic.Dispatch ('CANoe.Application')
_Vers = _CANoe_Appl.Version
print('Loaded CANoe version ',_Vers.major, '.',_Vers.minor, '.',_Vers.Build, '...')


if 1:
    print("CANoe Start")

    _CANoe_Appl.Open ("C:\Users\Al\Desktop\CANoe\Test.cfg",0,0)
    sleep(5)

Folgendes Problem: Eine letzte gespeicherte CANoe Konfiguration startet zwar, aber dann wird diese ohne die angegebene Konfiguration zu starten wieder geschlossen. Es wird eine Default Konfig angelegt.

Fehlermeldung ist:

Code: Alles auswählen

>>> CANoe Start
Traceback (most recent call last):
  File "C:\Users\user\Documents\lib\site-packages\Pythonwin\pywin\framework\scriptutils.py", line 314, in RunScript
    exec codeObject in __main__.__dict__
  File "C:\Users\user\Desktop\Automation_CANoe\CANoe_Auto.py", line 61, in <module>
    _CANoe_Appl.Open ("C:\Users\user\Desktop\CANoe_3_5\TA1902_RestBUS_Sim.cfg",0,0)
  File "<COMObject CANoe.Application>", line 3, in Open
  ComClass "None"
     Error       : Unbekannter Fehler
     Description : 
 com_error: Ausnahmefehler aufgetreten.
Was mache ich falsch. Ich möchte die Open() Funktion werden um eine spezifische Konfiguration zu starten, mehr nicht. :)
__deets__
User
Beiträge: 14541
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mal abgesehen davon, dass Python2.5 schon Zombie-Status hat und nicht mehr verwandt werden sollte, waere mein erster Verdacht die Frage, ob der Pfad wirklich existiert. Dabei muss dir bewusst sein, dass Python den \ zum Escape von Sonderzeichen benutzt. Also zB

print("\n")

gibt nicht \n aus, sondern *ZWEI* Leerzeilen. Wei \n eben fuer Leerzeile (linefeed, um genau zu sein) steht. \t steht fuer Tabulator, etc...

Darum muss man unter Windows immer aufpassen, und zB Pfade entweder mit \\ trennen (\\ ist dann \ im String), oder "raw-strings" verwendet.
PythonMan2019
User
Beiträge: 13
Registriert: Montag 18. Februar 2019, 14:29

Hallo

danke, das hat geholfen. Lag an den Backslash.

Gruss
Benutzeravatar
__blackjack__
User
Beiträge: 13111
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Wobei weder der Pfad im Quelltext noch der im Traceback ein Problem damit gehabt hätte. Zumindest unter Python 2. In Python 3 hätte es einen Syntaxfehler wegen '\u…'/'\U…' gegeben.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten