.venv serial lässt sich nicht installieren

Probleme bei der Installation?
Antworten
erdmulch
User
Beiträge: 230
Registriert: Samstag 17. Juli 2010, 19:50

Hallo zusammen,

wenn ich auf meinem Raspberry Pi import serial mache funktioniert dies ohne probleme.
wenn ich eine virtuelle Umgebung starte und import serial mache, kommt folgende Fehlmermeldung:
no module named serial

kann mir jemand sagen wie ich dies unter der wirtuellen Umgebung installiere?

vielen Dank
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

musst du vorher halt erstmal pip install serial machen, in der venv
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
erdmulch
User
Beiträge: 230
Registriert: Samstag 17. Juli 2010, 19:50

da kommt dann folgende Fehlermeldung:


HTTP error 404 while getting https://www.piwheels.org/simple/pyyaml/ ... f78caee6ff (from https://www.piwheels.org/simple/pyyaml/)
Could not install requirement pyyaml>=3.12 from https://www.piwheels.org/simple/pyyaml/ ... f78caee6ff (from serial) because of error 404 Client Error: Not Found for url: https://www.piwheels.org/simple/pyyaml/ ... armv6l.whl
Could not install requirement pyyaml>=3.12 from https://www.piwheels.org/simple/pyyaml/ ... f78caee6ff (from serial) because of HTTP error 404 Client Error: Not Found for url: https://www.piwheels.org/simple/pyyaml/ ... armv6l.whl for URL https://www.piwheels.org/simple/pyyaml/ ... f78caee6ff (from https://www.piwheels.org/simple/pyyaml/)

kann mir jemand sagen, warum die Seite nicht erreichbar ist?
und wie ich nun zu meinem serial modul komme?

https://www.piwheels.org/simple/pyyaml/ ... f78caee6ff
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

lade doch das Wheel von hier direkt und installiere es manuell
https://www.piwheels.org/simple/pyyaml/
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Leute, das ist das falsche Paket. Du möchtest nicht `serial` sondern `pyserial` installieren.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
erdmulch
User
Beiträge: 230
Registriert: Samstag 17. Juli 2010, 19:50

gleiches Problem wieder:

python3.5 -m pip install pyserial
Collecting pyserial
Using cached https://files.pythonhosted.org/packages ... ne-any.whl
Installing collected packages: pyserial
Successfully installed pyserial-3.4

wenn ich dann import pyserial mache, dann kommt immer noch die Meldung:
no module named pyserial
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Das Modul heisst ja auch `serial`. Paket und Modul müssen nicht den gleichen Namen haben. Kann manchmal etwas verwirrend sein, aber in anderen Fällen auch nützlich.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
erdmulch
User
Beiträge: 230
Registriert: Samstag 17. Juli 2010, 19:50

perfekt, Danke hat geklappt.
Nun habe ich aber das nächste Problem :-(
ich starte Django mit dem Befehl:
python3 manage.py runserver 0.0.0.0:8001

leider kommt nun folgende Fehlermeldung:
serial.serialutil.SerialException: [Errno 13] could not open port /dev/ttyAMA0: [Errno 13] Permission denied: '/dev/ttyAMA0'

klar, der Port erwartet root Rechte.
wenn ich den Befehl in einem anderem Terminal ausführe
ein chmod 777 /dev/ttyAMA0
bringt das nur kurz was. Es kommt dann nach ca.2sec wieder die gleiche Fehlermeldung.

Kann mir jemand sagen, wie ich den Port dauerhaft auf execute Rechte ohne root setzen kann?

vielen Dank im voraus
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@erdmulch: An den Rechten solltest Du gar nichts ändern. Da hat nicht nur root zugriff sondern auch die Benutzer der Gruppe `dialout`. Also solltest Du Benutzer die darauf zugreifen sollen in diese Gruppe stecken.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mit Venv habe ich noch wenig gearbeitet - virtualenv kannte eine Option, die System Pakete zur Verfügung zu stellen.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@__deets__: Das will man doch aber eigentlich nicht, ausser wenn es dort Pakete gibt, die sich nicht in die virtuelle Umgebung installieren lassen‽

Der letzte Schrei ist ja `pipenv`. Das verbindet `virtualenv` oder `venv` mit `pip` und bietet mit `Pipfile` und `Pipfile.lock` ähnliche Funktionalität wie npm oder die Paketverwaltung von Dart.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Primär will ich etwas, das mein Problem löst. Wenn es ansonsten keine Konflikte gibt, komme ich auch ohne komplette Isolation aus.
erdmulch
User
Beiträge: 230
Registriert: Samstag 17. Juli 2010, 19:50

Bisher habe ich immer noch das Problem, das ich unter den normalen Rechten keine Berechtigung habe:
serial.serialutil.SerialException: [Errno 13] could not open port /dev/ttyAMA0: [Errno 13] Permission denied: '/dev/ttyAMA0'

Die /boot/cmdline.txt, sieht wie folgt aus:

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=34dc0999-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

obwohl ich in der Gruppe dialout bin:
groups pi
pi : pi adm tty dialout cdrom sudo audio video plugdev games users input netdev spi i2c gpio

Kann mir da jemand helfen?

vielen Dank im voraus
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@__deets__: Ich benutze das halt auch für's „deployment“ und da sind Bibliotheken vom System, die nicht auf dem Stand sind den ich brauche, ein Problem das gelöst werden will. ☺

War mir am Anfang relativ egal, aber wenn dann ein Kollege kommt, den Server von einem recht alten Stand auf einen aktuellen hebt und ich dann auf einen Schlag bei allen Anwendungen von mir die darauf laufen, oder dann eben liefen, unter Zeitdruck alles fixen muss… Das macht man *einmal* mit. Ab da dann isolierte virtualenv und eine requirements.txt die *alle* Abhängikeiten + Version enthält. ☺

@erdmulch: Wie sehen denn die Rechte von /dev/ttyAMA0 genau aus? Also was gibt ``ls -l /dev/ttyAMA0`` aus?
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
erdmulch
User
Beiträge: 230
Registriert: Samstag 17. Juli 2010, 19:50

hier die rechte:

crw--w---- 1 root tty 204, 64 Jul 7 15:00 /dev/ttyAMA0
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Okay, dann sehen die anders aus als auf meinem Raspi. Was für einen hast Du denn da? Mit Bluetooth? Hast Du alles gemacht, damit der Kernel die serielle Schnittstelle nicht als Konsole für Ausgaben verwendet?
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
erdmulch
User
Beiträge: 230
Registriert: Samstag 17. Juli 2010, 19:50

ja habe alles gemacht, damit die ich Daten empfangen kann.
Wenn ich sudo rechte funktioniert das ganze auch. Da ich allerdings Django einsetze und die Daten visulisiern möchte kann ich das Script nicht mit den Roor rechten starten.

Ich benutze einen Raspberry Pi Zero W
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Dann hast Du eine serielle Verbindung per Bluetooth? Oder hast Du die Devices getauscht? Ich denke ich kann da nicht weiterhelfen weil ich es nicht nachstellen kann und es so verdammt viele Variationen gibt wie man das Einstellen kann/muss.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
erdmulch
User
Beiträge: 230
Registriert: Samstag 17. Juli 2010, 19:50

Ok, trotzdem Danke
Werde nun einen neuen Thread öffnen, da das Problem ganz klar bei der Kommunikation zwischen der virtuellen Umgebung und der seriellen Schnittstelle gibt. Ohne Vene funktioniert es nämlich ohne Probleme
Antworten