sudo python3 генерирует ошибку, но python3 нет

Aug 16 2020

Я не понимаю, почему "sudo python3 temphumlogger2.py" вызывает ошибку модуля, а "python3 temphumlogger2.py" не вызывает проблем. Выводы ниже и код ниже. Я хочу, чтобы код выполнялся автоматически при запуске, и для этого мне нужно использовать sudo. Я пробовал переустановить различные пакеты, но не могу понять, почему sudo вызывает ошибку, а без нее - нет?

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)

Ответы

1 mechoption Aug 16 2020 at 22:46

Раньше я sudo bashвводил команды как sudo и обнаружил python3 temphumlogger2.pyту же ошибку. В этом окне Sudo Баш Я следовал инструкциям CircuitPython здесь , чтобы установить все модули снова. После этого temphumlogger.py теперь запускается с и без, sudoкогда я вхожу в систему как pi.

В соответствии с комментариями, я думаю, что установил вещи как пользователь вместо sudo.