Watchdog: Python 2.7 und Windows 7

Erstellt am 5. Dez. 2011  ·  3Kommentare  ·  Quelle: gorakhargosh/watchdog

Da ich einige Probleme mit Python2.5 hatte, habe ich auch Python 2.7 ausprobiert und jetzt bekomme ich einen anderen Fehler:
(Ich vermute, dass etwas mit ctypes und den Windows-DLLs nicht stimmt, aber viel mehr kann ich nicht sagen ...)

Cc C-cException in Thread Thread-2:
Traceback (letzter Anruf zuletzt):
Datei "c:Python27libthreading.py", Zeile 552, in __bootstrap_inner
self.run()
Datei "c:Python27libsite-packageswatchdog-0.5.4-py2.7.eggwatchdogobserversapi.py", Zeile 192, in Ausführung
self.queue_events(self.timeout)
Datei "c:Python27libsite-packageswatchdog-0.5.4-py2.7.eggwatchdogobserversread_directory_changes.py", Zeile 80, in queue_events
self.watch.is_recursive)
Datei "c:Python27libsite-packageswatchdog-0.5.4-py2.7.eggwatchdogobserverswinapi_common.py", Zeile 130, in read_directory_changes
Keiner)
Datei "c:Python27libsite-packageswatchdog-0.5.4-py2.7.eggwatchdogobserverswinapi.py", Zeile 103, in _errcheck_bool
ctypes.WinError() erhöhen
WindowsError: [Fehler 1] Falsche Funktion.

Incomplete (need more info) windows

Hilfreichster Kommentar

Habe selbst etwas in die Windows-API gegraben und konnte das Problem tatsächlich identifizieren.

Beim Nachschlagen der Rückgabewerte von ReadDirectoryChangesW habe ich Folgendes gefunden:

Wenn der Netzwerk-Redirector oder das Zieldateisystem diese Operation nicht unterstützt, schlägt die Funktion mit ERROR_INVALID_FUNCTION fehl.
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365465 (v=vs.85).aspx

Ich habe an einer Netzwerkfreigabe gearbeitet.
Das Kopieren der Dateien, die ich ansehen muss, in ein lokales Dateisystem hat dies für mich behoben.

Ich lasse dies hier, falls jemand anderes dieses Problem beim googeln der Fehlermeldung findet.

Alle 3 Kommentare

Hallo,
Es tut mir leid, dass ich dieses zwei Jahre alte Problem gestoßen habe, aber ich bin gerade auf genau das gleiche Problem mit Windows 10, Python2.7 und Watchdog 0.8.3 gestoßen

Es kann durch den folgenden Codeabschnitt reproduziert werden:

import time

from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

class Handler(FileSystemEventHandler):
    def on_any_event(self, event):
        print "File changed: %s" % event.src_path

if __name__ == '__main__':
    event_handler = Handler()
    observer = Observer()
    observer.schedule(event_handler, '.', recursive=True)
    observer.start()

    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()

Die resultierende Ausnahme sieht wie folgt aus:

Exception in thread Thread-2:
Traceback (most recent call last):
  File "c:\python27\Lib\threading.py", line 801, in __bootstrap_inner
    self.run()
  File "C:\Users\IEUser\Envs\xtrude\lib\site-packages\watchdog\observers\api.py", line 146, in run
    self.queue_events(self.timeout)
  File "C:\Users\IEUser\Envs\xtrude\lib\site-packages\watchdog\observers\read_directory_changes.py", line 77, in queue_events
    winapi_events = read_events(self._handle, self.watch.is_recursive)
  File "C:\Users\IEUser\Envs\xtrude\lib\site-packages\watchdog\observers\winapi.py", line 347, in read_events
    buf, nbytes = read_directory_changes(handle, recursive)
  File "C:\Users\IEUser\Envs\xtrude\lib\site-packages\watchdog\observers\winapi.py", line 307, in read_directory_changes
    raise e
WindowsError: [Error 1] Incorrect function.

Bitte sagen Sie mir, wenn Sie weitere Informationen benötigen.

Habe selbst etwas in die Windows-API gegraben und konnte das Problem tatsächlich identifizieren.

Beim Nachschlagen der Rückgabewerte von ReadDirectoryChangesW habe ich Folgendes gefunden:

Wenn der Netzwerk-Redirector oder das Zieldateisystem diese Operation nicht unterstützt, schlägt die Funktion mit ERROR_INVALID_FUNCTION fehl.
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365465 (v=vs.85).aspx

Ich habe an einer Netzwerkfreigabe gearbeitet.
Das Kopieren der Dateien, die ich ansehen muss, in ein lokales Dateisystem hat dies für mich behoben.

Ich lasse dies hier, falls jemand anderes dieses Problem beim googeln der Fehlermeldung findet.

Das hat mir gerade heute geholfen. Vielleicht sollten wir einen benutzerdefinierten Fehler mit einer etwas detaillierteren Nachricht darüber melden, warum dies passiert ist (Oder vielleicht nur ein Link zu diesem Problem).

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen