sudo python3 generuje błąd, ale python3 nie

Aug 16 2020

Nie rozumiem, dlaczego „sudo python3 temphumlogger2.py” powoduje błąd modułu, podczas gdy „python3 temphumlogger2.py” nie powoduje żadnego problemu. Dane wyjściowe poniżej, a kod poniżej. Chcę, aby kod był wykonywany automatycznie podczas uruchamiania i muszę do tego użyć sudo. Próbowałem ponownie zainstalować różne pakiety, ale nie mogę dowiedzieć się, dlaczego sudo powoduje błąd, a bez tego nie?

pi@raspberrypi:~ $ sudo python3 temphumlogger2.py  
Traceback (most recent call last):  
  File "temphumlogger2.py", line 3, in <module>  
    import adafruit_dht
ModuleNotFoundError: No module named 'adafruit_dht'
pi@raspberrypi:~ $ python3 temphumlogger2.py  
waiting 15 mins  
Temp: 73.9 F / 23.3 C    Humidity: 48.0% 
import time
import board
import adafruit_dht
from datetime import datetime
 
# Initial the dht device, with data pin connected to:
dhtDevice = adafruit_dht.DHT22(board.D4)
 
while True:
    try:
        # Print the values to the serial port
        temperature_c = dhtDevice.temperature
        temperature_f = temperature_c * (9 / 5) + 32
        humidity = dhtDevice.humidity
        with open('/home/pi/thdataupstairs.csv', mode='a') as file_:
            file_.write("{},{},{}".format(datetime.now(),temperature_c, humidity))
            file_.write("\n")
        print("waiting 15 mins")
        print(
            "Temp: {:.1f} F / {:.1f} C    Humidity: {}% ".format(
                temperature_f, temperature_c, humidity
            )
        )
        time.sleep(10)
 
    except RuntimeError as error:
        # Errors happen fairly often, DHT's are hard to read, just keep going
        print(error.args[0])
 
    time.sleep(2.5)

Odpowiedzi

1 mechoption Aug 16 2020 at 22:46

Kiedyś sudo bashwprowadzałem polecenia jako sudo i znalazłem python3 temphumlogger2.pyten sam błąd. W tym oknie sudo bash postępowałem zgodnie z instrukcjami CircuitPython tutaj, aby ponownie zainstalować wszystkie moduły. Po tym temphumlogger.py działa teraz z i bez, sudokiedy loguję się jako pi.

Zgodnie z komentarzami, myślę, że zainstalowałem rzeczy jako użytkownik zamiast sudo.