Hallo,
ich möchte Python auf einem embedded System nutzen. Dort ist zwar Python 3 installiert, allerdings nicht alle benötigten Module und ich habe auch keine Berechtigung diese nachträglich zu installieren. Mein Ziel ist es nun die Module, die ich benötige, meiner Applikation mit zu geben um sie so auf dem Zielsystem nutzen zu können. Welche Möglichkeiten habe ich?
Viele Module kann ich als tar.gz oder whl runterladen, aber wie nutze ich sie dann?
Wie kann ich cross-compilierte Module mit ausliefern und die ohne installation nutzen?
-
- User
- Beiträge: 3
- Registriert: Freitag 23. Oktober 2020, 05:23
Aktuell habe ich mir so beholfen, das ich mir das tar.gz des Moduls runter geladen habe und es in meinem Applikationsordner entpackt habe. Danach setzte ich den sys.path und kann dann das Modul implementieren.
Beispiel:
import sys
cantools_path=("./cantools-35.3.0/")
can_path=('./python-can-3.3.4/')
aenum_path=('./aenum-2.2.4/')
bitstruct_path=('./bitstruct-8.11.0/')
textparser_path=('./textparser-0.23.0/')
diskcache_path=('./diskcache-5.0.3/')
sys.path.append(cantools_path)
sys.path.append(can_path)
sys.path.append(aenum_path)
sys.path.append(bitstruct_path)
sys.path.append(textparser_path)
sys.path.append(diskcache_path)
import cantools
print("Test")
print (cantools.__version__)
Gibt es eine andere (bessere) Möglichkeit?
Beispiel:
import sys
cantools_path=("./cantools-35.3.0/")
can_path=('./python-can-3.3.4/')
aenum_path=('./aenum-2.2.4/')
bitstruct_path=('./bitstruct-8.11.0/')
textparser_path=('./textparser-0.23.0/')
diskcache_path=('./diskcache-5.0.3/')
sys.path.append(cantools_path)
sys.path.append(can_path)
sys.path.append(aenum_path)
sys.path.append(bitstruct_path)
sys.path.append(textparser_path)
sys.path.append(diskcache_path)
import cantools
print("Test")
print (cantools.__version__)
Gibt es eine andere (bessere) Möglichkeit?
-
- User
- Beiträge: 3
- Registriert: Freitag 23. Oktober 2020, 05:23
Kann man evtl. mit zipimport arbeiten? Also alle Module in eine ZIP packen und somit nur eine ZIP-Datei mit allen Modulen zur Applikation mitgeben?
Ich habe da lange nicht mehr reingeschaut, aber mE entpackt zip import in ein temporäres Verzeichnis. Wirklich was gewonnen ist also nicht. Natürlich kann man sich damit das deployment leichter machen. Aber das geht ja auch so, indem du ein Archiv lokal entpackst.