Programm bleibt nicht offen, convert .arxml to .dbc

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
hoal
User
Beiträge: 4
Registriert: Mittwoch 2. März 2016, 14:33

Hallo zusammen,
ich befinde mich in folgender Situation. Für meine Abschlussarbeit muss ich eine .arxml in eine .dbc Datei konvertieren, während meiner Suche im Netz bin ich auf diese Links gestoßen:

https://github.com/ebroecker/canmatrix
http://eduard-broecker.de/Software/canmatrix.html

Beim Versuch das Programm zu starten, trat allerding eine Fehlermeldung auf. Da ich zuvor noch nie mit Python gearbeitet habe und unter Zeitdruck stehe wende ich mich an euch.

Fehlermeldung:
Traceback (most recent call last):
File "convert.py", line 5, in <module> from .log import setup_logger, set_log_level
SystemError: Parent module `` not loaded, cannot perform relative import

Die heruntergeladene convert.py habe ich in Verzeichnis für Python im Unterordner Scripts abgelegt.

System:
Windows 7
Python 3.5.1

Das selbe Problem mit dem sofort schließenden Fenster habe ich auch wenn ich die Windows-exe convert.exe starte. siehe eduard-broecker.de.

Wäre wirklich super wenn mir jemand weiterhelfen könnte.
Danke schoneinmal im Voraus.

Gruß hoal
BlackJack

@hoal: Das klingt so ein bisschen als wenn *in* dem `canmatrix/`-Verzeichnis die `convert.py` aufgerufen wurde. Hast Du das denn nach Anleitung installiert?

Was meinst Du mit dem schliessenden Fenster? Du öffnest eine Eingabeaufforderung und startest dort drin das Programm und die Eingabeaufforderung schliesst sich dann? Das sollte eigentlich nicht passieren.
hoal
User
Beiträge: 4
Registriert: Mittwoch 2. März 2016, 14:33

Mit der Anleitung habe ich um ehrlich zu sein etwas meine Probleme, das beginnt bereits bei "Install canmatix..." hier habe ich den das File "canmatrix-3.0" unter Releases heruntergeladen und die "examples" in meine Scripts Ordner kopiert.

Install instructions:
If you are using a Windows system, these scripts are usually installed at the location of your python installation. For example 'C:\python3.4\Scripts' or 'C:\python2.7\Scripts'

Sobald ich die .py starte öffnet sich für wenige als eine Sekunden das Eingabefenster, den Inhalt sehe ich nur aufblitzen und das wars. Nach ein Paar versuchen habe ich es geschaft von der convert.exe einen Screenshot zu machen.
In einem anderen Forum habe ich bereits gelesen dass dies ein Windows Problem sein soll und man ans Ende des Quellcodes ein input() schreiben soll. Dies habe ich bereits versucht leider ohne Erfolg.

Bilder:
http://fs5.directupload.net/images/160302/gz24euhp.png
http://fs5.directupload.net/images/160302/ug6j3bau.png
BlackJack

@hoal: Das ist kein Windowsproblem. Das sind Kommandozeilenprogramme die man in einer Kommandozeile startet und nicht per Doppelklick auf die Datei. Also erst die Eingabeaufforderung starten und dort dann mit der Tastatur arbeiten.

Dort muss man auch die `setup.py` ausführen um das ganze zu installieren. Also das Archiv entpacken, in der Eingabeaufforderung mit ``cd`` in das Verzeichnis wechseln in dem die `setup.py` liegt und dort dann ``python setup.py install`` eingeben. Allerdings hat das Programm einige Abhängigkeiten die man auch/vorher installieren müsste. Einfacher ist wahrscheinlich ``pip`` zu verwenden. Also Beispielsweise in der Eingabeaufforderung ``python -m pip install canmatrix`` ausführen.
hoal
User
Beiträge: 4
Registriert: Mittwoch 2. März 2016, 14:33

Okay ``python -m pip install canmatrix`` hat soweit funktioniert.

Bei der Ausführung von ``canconvert headunit.arxml headunit.dbc`` bekomme ich als Feedback, ``try pip install lxml``.
Hierbei erhalte ich wiederum die Meldung ``Is libxml2 installed?``.

Gefunden habe ich im Netz diese Webseite: http://xmlsoft.org/downloads.html --> http://xmlsoft.org/sources/win32/

Jetzt stellt sich mir die Frage wie ich die lib einbinde?
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

hoal hat geschrieben:Jetzt stellt sich mir die Frage wie ich die lib einbinde?
Du könntest für Windows ein vorgefertigtes Paket für lxml verwenden.
BlackJack

@hoal: Du könntest auch noch mal die `convert.exe` probieren, ob die alles nötige integriert hat und einfach funktioniert. Man muss die halt auch *in* einer Eingabeaufforderung starten und nicht Doppelklicken.

Ansonsten ist für Windows eine Python-Distribution mit Paketverwaltung wie Anaconda auch eine Option. Ist natürlich etwas mit Kanonen auf Spatzen geschossen wenn man das nur für ein kleines Skript braucht, aber man bekommt ähnlichen Komfort wie bei einem Linuxsystem was vorgefertigte Pakete und deren Installation angeht.

Oder man installiert sich ein Linux, beispielsweise in einer VM.
hoal
User
Beiträge: 4
Registriert: Mittwoch 2. März 2016, 14:33

Habe ich bereits versucht mit folgendem Ergebnis:
http://fs5.directupload.net/images/160303/y68ulmnt.png
gilead
User
Beiträge: 3
Registriert: Montag 16. Januar 2017, 16:03

Hallo liebe User,

ich habe canmatrix mit pip installiert. so weit- so gut.
Nun möchte ich die Funktionen nutzen (bin ganz neu in Python).
Könnte jemand ein Skript zur Verwendung stellen, das die Funktionen ordnungsgemäß aufruft?
Über "python convert.py test.dbc excel.xlsx" im entsprechenden Verzeichnis in der cmd-line komme ich nicht weiter.
Leider sind auf den entsprechenden Seiten keine Anleitungen/Wiki dabei:
https://github.com/ebroecker/canmatrix
https://pypi.python.org/pypi/canmatrix/0.4

Es wäre toll, wenn mir jemand weiterhelfen könnte!
BlackJack

@gilead: Was heisst nicht weiterkommen denn konkret? Wo kommt `convert.py` her? Das Programm heisst doch `canconvert.py` wenn ich das richtig sehe.

Die `REAMDE.md` enthält doch so etwas wie eine Anleitung für die Konvertierung und einige andere Beispiele die man mit dem Programm machen kann.
gilead
User
Beiträge: 3
Registriert: Montag 16. Januar 2017, 16:03

@BlackJack: Danke für die Antwort!
Mein erster Fehler war, dass ich convert.py in dem site-package starten wollte. Das Starten des Programms canconvert.exe unter C:\python2.7\Scripts in der command line funktioniert jetzt.

Nun habe ich mit dem Konvertieren Probleme. Ich navigiere per cmd in den Scripts Ordner und starte dann "python canconvert.exe". Die Hilfe wird angezeigt. Ebenfalls unter C:\python2.7\Scripts habe ich testdbc.dbc abgelegt, die ich in ein xlsx konvertieren möchte.
Deshalb habe ich, wie in der readme beschrieben, folgendes versucht:
"python canconvert.exe testdbc.dbc export.xlsx"
Dabei habe ich die export.xlsx auch als leeres excel-sheet im selben ordner angelegt.
Folgende Fehlermeldung erhalte ich:
"ImportError: No module named builtins"

Welche Befehle/options muss ich noch in der cmd-line schreiben, damit die Konvertierung funktioniert?
BlackJack

@gilead: Das Du mit Python eine EXE startest, kann ich jetzt fast nicht glauben. Und `builtins` ist ein Modul das zur Standardbibliothek von Python gehört — wenn das nicht gefunden werden kann, dann stimmt etwas mit der Python-Installation nicht.
gilead
User
Beiträge: 3
Registriert: Montag 16. Januar 2017, 16:03

Ich korrigiere: Starte die canconvert.exe über die cmd-line ohne python. :D
Stimmt der Aufruf des Programmes mit folgender Zeile: "..\canconvert.exe test.dbc test.xlsx" ?
Gleiche Fehlermeldung wie vorher.. beim Importieren der -dbc scheint etwas schief zu laufen..

Habe nun Python 2.7.13 mehrmals nach Anleitung installiert - aber keine Änderung der Fehlermeldung.

https://pypi.python.org/pypi/canmatrix/0.4 und https://github.com/ebroecker/canmatrix liefern unterschiedlich ausführliche packages. Ich habe die .whl vom ersten Link installiert. Vielleicht tut das was zur Sache.
Antworten