Проблема с мониторингом USB pyudev в FlaskPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с мониторингом USB pyudev в Flask

Сообщение Anonymous »

Я беру гарвардский CS50, я начинающий (и энтузиаст!) программист.
В качестве своего последнего проекта я создаю программу, которая отслеживает, когда USB-устройство подключается к компьютеру, сохраняя некоторые значения в базе данных SQL. Все работает нормально при работе в коде VS и через терминал, но когда я попытался реализовать Flask для его рендеринга на веб-странице, начались проблемы. Похоже, Flask каким-то образом блокирует запуск USB-мониторинга (даже если он вызывается раньше, чем Flask!), я не знаю почему. Вот мой код:

Код: Выделить всё

import hashlib
import pyudev
import threading

from cs50 import SQL
from datetime import datetime, timedelta
from flask import Flask, render_template

app = Flask(__name__)

db = SQL("sqlite:///lessmob.db")

def device_event_monitor(action, device):
if device.subsystem == 'usb':
[here my code does stuff]

def monitor_usb():
context = pyudev.Context()

monitor = pyudev.Monitor.from_netlink(context)
monitor.filter_by('usb')  # Filtrare solo eventi di dispositivi USB

monitor.enable_receiving()

print("Waiting for USB devices...")

observer = pyudev.MonitorObserver(monitor, device_event_monitor)
observer.start()

try:
while True:
pass
except KeyboardInterrupt:
print("\nMonitoraggio terminato.")

@app.route("/")
def index():
return render_template("index.html")

if __name__ == "__main__":
usb_thread = threading.Thread(target=monitor_usb)
usb_thread.start()

app.run(debug=True)
Когда я набираю flask run, я НЕ вижу в терминале сообщения «Ожидание USB-устройств...», но Flask запускается без проблем.
Почему??Спасибо за совет за помощь и большой привет из Италии!
Я попробовал запустить свой код в нескольких средах (Windows, Linux, кодовое пространство), ничего не изменилось.

Подробнее здесь: https://stackoverflow.com/questions/792 ... g-in-flask
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»