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.
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).
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:
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.