Import Modules/Dateien

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
E.S.
User
Beiträge: 2
Registriert: Freitag 6. Oktober 2023, 07:17

Hallo,

Grundsatzfrage....:

ich habe von Github eine enoecen library für python installert.

im code werden module / dateien (ohne verzeichnissverweis) eingebunden:

Code: Alles auswählen

#!/usr/bin/python3
# -*- encoding: utf-8 -*-
from enocean.consolelogger import init_logging
import enocean.utils
from enocean.communicators.serialcommunicator import SerialCommunicator
from enocean.protocol.packet import RadioPacket
from enocean.protocol.constants import PACKET, RORG
import sys
import traceback
import test
wo sind diese Dateien/Module auf meinen PI abgelegt, wie weiss python wo es diese Module findent?
Danke, mfg E.S.
Benutzeravatar
noisefloor
User
Beiträge: 4194
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

welche Befehlen hast du zum installieren benutzt und welches Betriebssystem benutzt du und hast du in einem Virtual Environment installiert? Das hat einen Einfluss darauf, wo die Dateien liegen.

Gruß, noisefloor
E.S.
User
Beiträge: 2
Registriert: Freitag 6. Oktober 2023, 07:17

noisefloor hat geschrieben: Freitag 6. Oktober 2023, 08:40 Hallo,

welche Befehlen hast du zum installieren benutzt und welches Betriebssystem benutzt du und hast du in einem Virtual Environment installiert? Das hat einen Einfluss darauf, wo die Dateien liegen.

Gruß, noisefloor
installiert habe ich mit: sudo pip install enocean

meine OS Version:
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=raspbian
ID_LIKE=debian


Danke, mfg ES
Benutzeravatar
noisefloor
User
Beiträge: 4194
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

dann sollten die Dateien unter /usr/lib/python3/dist-packages/enocean liegen.

Es ist übrigens in der Regel keine gute Idee, Python-Module mit Root-Rechten systemweit zu installieren, sofern es nicht einen absolut zwingenden Grund gibt. Besser per Nutzer lokal oder noch besser in einem Virtual Environment. Letzteres ist eine isolierte Python-Umgebung, in der man tun und lassen kann, was man will, ohne das Risiko einzugehen, dass das ungewünschten Seiteneffekte auf das System und das systemweit installierte Python hat.

Gruß, noisefloor
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Einfach mal ``import enocean; print(enocean)`` in Python ausführen sollte verraten wo das Package liegt.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

noisefloor hat geschrieben: Freitag 6. Oktober 2023, 09:23 Es ist übrigens in der Regel keine gute Idee, Python-Module mit Root-Rechten systemweit zu installieren, sofern es nicht einen absolut zwingenden Grund gibt. Besser per Nutzer lokal oder noch besser in einem Virtual Environment. Letzteres ist eine isolierte Python-Umgebung, in der man tun und lassen kann, was man will, ohne das Risiko einzugehen, dass das ungewünschten Seiteneffekte auf das System und das systemweit installierte Python
Unpopular opinion: ich halte von sowas nicht viel, wenn die Zielgruppe die Heimautomations/Bastelfraktion ist. Denn mit dem Tipp kommt gleich die naechste Frage, warum das Modul nicht im cronjob importiert wird. Die Ansprueche fuer Dev-Ops-maessiges handeln muss man IMHO auch mal ignorieren koennen.
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@__deets__: Naja, führt dann dazu das die gleichen Leute was mit sudo, pip, und --pre installieren und sich wundern warum ihr System zerschossen ist. Und im Zweifelsfall am Ende den Fehler nicht bei sich suchen, sondern dann ist Python doof weil das immer alles kaputt macht.

Auf jeden Fall ist ``sudo`` keine gute Idee. Bei Installation als Benutzer muss man das System zumindest am Ende nicht komplett neu aufsetzen, sondern es reicht wenn man das Heimatverzeichnis entsprechend säubert, wenn dabei was kaputt geht.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich habe bisher sehr selten Faelle von zerschossenen Systemen gesehen, weil man pip mit sudo installiert hat. Die weitaus haeufigsten Diskussionen drehen sich darum, dass die Pakete nicht von dem Interpreter gefunden werden, der dann da gerade genutzt wird. Und die ganze Frage danach, "was duerfe root", ist fuer ein solches System deutlich irrelevanter, als bei einem im professionellen Kontext gemanageten System.

sudo wird oft verwendet wie ein Salzstreuer, das ist zwar quatsch. Aber hier, wenn das Paket dann sysetmweit installiert ist, fuer die eine Software, die darauf wahrscheinlich laeuft - :shrug:

Natuerlich gibt es gute Gruende fuer die Existenz all dieser Moeglichkeiten. Aber es reicht die anzubringen, wenn man sie denn wirklich braucht. Nicht prophylaktisch. Das man dann ggf. mal ein System neu installieren muss... tjoa. Das ist eh ein Risiko, auch ausserhalb von Python. No backup, no tears, und so.
Benutzeravatar
noisefloor
User
Beiträge: 4194
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Denn mit dem Tipp kommt gleich die naechste Frage, warum das Modul nicht im cronjob importiert wird
Darauf lautet natürlich die Antwort: weil man heutzutage systemd benutzt ;-)

Wenn's ein Bastel-Pi ist, auf dem man sonst nix macht und den man ohne Probleme und größere Schmerzen beliebig oft neu aufsetzen kann - ja, dann ist das (fast) egal. Wobei ich halt trotzdem zumindest das `sudo` weglassen würde.

Gruß, noisefloor
Antworten