Hallo zusammen,
ich bin absoluter Anfänger und habe ein bestehendes python script mit der Methode Requests erweitert. wenn ich nun in meinem Raspberry das Programm in der Konsole ausführen will muss ich immer python3 voranstellen da sonst die Methode nicht erkannt wird.
Ich habe so wie ich das sehe nur Python in der Version 3.8.4 installiert. kann ich irgendwie einstellen dass immer dies verwendet wird so dass ich mir das python3 sparen kann? Wäre cool, da ich das Skript in bestimmten Zeitabständen per Cronjob laufen lassen möchte.
Ich danke euch für eine Rückinfo.
pi@pizisterne:~ $ python3 -V
Python 3.8.4
pi@pizisterne:~ $ python -V
Python 3.8.4
pi@pizisterne:~ $ echo "alias python=python3.8" >> ~/.bashrc
pi@pizisterne:~ $ /home/pi/heizoeltestiobroker.py
Traceback (most recent call last):
File "/home/pi/heizoeltestiobroker.py", line 7, in <module>
import requests
ModuleNotFoundError: No module named 'requests'
Python 3.8.4 installiert muss immer python3 voranstellen
So sieht der Beginn der Datei mit shebang aus. Ich weiß aber nicht ob das Doppelkreuz als Kommentar interpretiert wird.
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import time
import datetime
import RPi.GPIO as GPIO
import json
import requests
Hallo,
#! leitet den Shebang ein.
Alternativ
Ist die Datei ausführbar?
Dann solltest du sie starten können. Wenn du zum Beispiel in '/home/pi' bist, mit
Grüße
Dennis
Edit: Die Zeile mit dem Encoding kann bei Python3 weg.
#! leitet den Shebang ein.
Alternativ
Code: Alles auswählen
#!/usr/bin/env python3
Code: Alles auswählen
chmod +x /home/pi/heizoeltestiobroker.py
Code: Alles auswählen
./heizoeltestiobroker.py
Dennis
Edit: Die Zeile mit dem Encoding kann bei Python3 weg.
"When I got the music, I got a place to go" [Rancid, 1993]
Hallo Dennis,
ich habe alles ausgeführt wie du gesagt hast. Mal mit env mal ohne. Die chmod +x habe ich auch gemacht immer das gleiche Ergebnis. Hierbei ist es auch egal gewesen ob ich bei der Ausführung den Pfad angebe oder ./
pi@pizisterne:~ $ sudo nano heizoeltestiobroker.py
pi@pizisterne:~ $ sudo chmod +x /home/pi/heizoeltestiobroker.py
pi@pizisterne:~ $ ./heizoeltestiobroker.py
Traceback (most recent call last):
File "./heizoeltestiobroker.py", line 7, in <module>
import requests
ModuleNotFoundError: No module named 'requests'
ich habe alles ausgeführt wie du gesagt hast. Mal mit env mal ohne. Die chmod +x habe ich auch gemacht immer das gleiche Ergebnis. Hierbei ist es auch egal gewesen ob ich bei der Ausführung den Pfad angebe oder ./
pi@pizisterne:~ $ sudo nano heizoeltestiobroker.py
pi@pizisterne:~ $ sudo chmod +x /home/pi/heizoeltestiobroker.py
pi@pizisterne:~ $ ./heizoeltestiobroker.py
Traceback (most recent call last):
File "./heizoeltestiobroker.py", line 7, in <module>
import requests
ModuleNotFoundError: No module named 'requests'
Hi,
ich habe es auf verschiedene Arten im Cronaufruf versucht. Keiner will das Skript ausführbar machen.
was nicht funktioniert hat:
50 * * * * cd /home/pi && python3 heizoeltestiobroker.py
50 * * * * /home/pi/ python3 heizoeltestiobroker.py
Vielleicht mache ich hier im Aufruf von Cron auch was falsch.
Hier mal noch print(requests)
<module 'requests' from '/home/pi/.local/lib/python3.8/site-packages/requests/__init__.py'>
ich habe es auf verschiedene Arten im Cronaufruf versucht. Keiner will das Skript ausführbar machen.
was nicht funktioniert hat:
50 * * * * cd /home/pi && python3 heizoeltestiobroker.py
50 * * * * /home/pi/ python3 heizoeltestiobroker.py
Vielleicht mache ich hier im Aufruf von Cron auch was falsch.
Hier mal noch print(requests)
<module 'requests' from '/home/pi/.local/lib/python3.8/site-packages/requests/__init__.py'>
Da haben wir ja schon diverse Probleme:
- Der Pfad zum Skript muss in der crontab absolut sein. Nicht relativ, wie du es gemacht hast. Denn das liegt ja irgendwo im user-Verzeichnis, oder?
- Das Modul requests ist lokal fuer den User Pi installiert. NICHT global, fuer alle. Der cron-job laeuft aber als root. Also geht das auch nicht.
Als Abhilfe solltes du das Modul global installieren. Entweder mit der entsprechenden pip-Option. Oder einfach schauen, ob das nicht per Paketmanagement (apt-get etc) installiert werden kann.
- Der Pfad zum Skript muss in der crontab absolut sein. Nicht relativ, wie du es gemacht hast. Denn das liegt ja irgendwo im user-Verzeichnis, oder?
- Das Modul requests ist lokal fuer den User Pi installiert. NICHT global, fuer alle. Der cron-job laeuft aber als root. Also geht das auch nicht.
Als Abhilfe solltes du das Modul global installieren. Entweder mit der entsprechenden pip-Option. Oder einfach schauen, ob das nicht per Paketmanagement (apt-get etc) installiert werden kann.
Hi Deets,
jetzt hat's geklappt. Tatsächlich war der Grund das das Modul auf Userebene und nicht lokal installiert wurde. ich habe das nun deinstalliert und erneut mit sudo global installiert und jetzt läuft es auch.
Danke für eure Hilfe.
jetzt hat's geklappt. Tatsächlich war der Grund das das Modul auf Userebene und nicht lokal installiert wurde. ich habe das nun deinstalliert und erneut mit sudo global installiert und jetzt läuft es auch.
Danke für eure Hilfe.