Собрал “на коленке” код, который опрашивает датчик bmp180 на Raspberry Pi и записывает данные в таблицу БД. По принудительному запуску в самой папке ($ python get_data.py) все работает, строчки в БД исправно добавляются. А вот если переместить файлы с кодом в папку планировщика CRON, то лезут ошибки.
Вот сам код файла “get_data.py”:
#!/usr/bin/python import Adafruit_BMP.BMP085 as BMP085 sensor = BMP085.BMP085() a = '{!s:5}'.format(sensor.read_temperature()) b = '{!s:.6}'.format(sensor.read_pressure()/133.322) from mysql.connector import MySQLConnection, Error from python_connect import read_db_config def insert_temp_pressure(Temp, Press): query = "INSERT INTO Temp_press_table(Temp,Press) " \ "VALUES(%s,%s)" args = (Temp, Press) try: db_config = read_db_config() conn = MySQLConnection(**db_config) cursor = conn.cursor() cursor.execute(query, args) if cursor.lastrowid: print('last insert id', cursor.lastrowid) else: print('last insert id not found') conn.commit() except Error as error: print(error) finally: cursor.close() conn.close() def main(): insert_temp_pressure(a,b) if __name__ == '__main__': main()
А это ошибка:
Traceback (most recent call last):
File “/etc/cron.d/get_data.py”, line 41, in <module>
main()
File “/etc/cron.d/get_data.py”, line 38, in main
insert_temp_pressure(a,b)
File “/etc/cron.d/get_data.py”, line 34, in insert_temp_pressure
cursor.close()
UnboundLocalError: local variable ‘cursor’ referenced before assignment
Вопрос: есть у меня в коде ошибки или нет? Никак не пойму.
Спасибо!