Watchdog: Python 2.7 et Windows 7

Créé le 5 déc. 2011  ·  3Commentaires  ·  Source: gorakhargosh/watchdog

Comme j'ai eu quelques problèmes avec python2.5, j'ai aussi essayé python 2.7 et maintenant j'obtiens une erreur différente :
(Je suppose que quelque chose ne va pas avec les ctypes et les dll windows, mais je ne peux pas en dire plus que ça...)

Cc C-cException dans le thread Thread-2 :
Traceback (appel le plus récent en dernier) :
Fichier "c:Python27libthreading.py", ligne 552, dans __bootstrap_inner
self.run()
Fichier "c:Python27libsite-packageswatchdog-0.5.4-py2.7.eggwatchdogobserversapi.py", ligne 192, en cours d'exécution
self.queue_events(self.timeout)
Fichier "c:Python27libsite-packageswatchdog-0.5.4-py2.7.eggwatchdogobserversread_directory_changes.py", ligne 80, dans queue_events
self.watch.is_recursive)
Fichier "c:Python27libsite-packageswatchdog-0.5.4-py2.7.eggwatchdogobserverswinapi_common.py", ligne 130, dans read_directory_changes
Rien)
Fichier "c:Python27libsite-packageswatchdog-0.5.4-py2.7.eggwatchdogobserverswinapi.py", ligne 103, dans _errcheck_bool
augmenter ctypes.WinError()
Erreur Windows : [Erreur 1] Fonction incorrecte.

Incomplete (need more info) windows

Commentaire le plus utile

J'ai creusé moi-même dans l'API Windows et j'ai bien sûr pu identifier le problème.

En recherchant les valeurs de retour de ReadDirectoryChangesW, j'ai trouvé ce qui suit :

Si le redirecteur réseau ou le système de fichiers cible ne prend pas en charge cette opération, la fonction échoue avec ERROR_INVALID_FUNCTION.
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365465 (v=vs.85).aspx

J'ai travaillé sur un partage réseau.
La copie des fichiers que je dois surveiller sur un système de fichiers local l'a corrigé pour moi.

Je vais laisser ceci ici au cas où quelqu'un d'autre trouverait ce problème en cherchant le message d'erreur sur Google.

Tous les 3 commentaires

Salut,
Je suis désolé d'avoir résolu ce problème vieux de deux ans, mais je viens de rencontrer exactement le même problème avec Windows 10, python2.7 et watchdog 0.8.3

Il peut être reproduit par le morceau de code suivant :

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()

L'exception résultante ressemble à ceci :

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.

S'il vous plaît dites-moi si vous avez besoin de plus d'informations.

J'ai creusé moi-même dans l'API Windows et j'ai bien sûr pu identifier le problème.

En recherchant les valeurs de retour de ReadDirectoryChangesW, j'ai trouvé ce qui suit :

Si le redirecteur réseau ou le système de fichiers cible ne prend pas en charge cette opération, la fonction échoue avec ERROR_INVALID_FUNCTION.
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365465 (v=vs.85).aspx

J'ai travaillé sur un partage réseau.
La copie des fichiers que je dois surveiller sur un système de fichiers local l'a corrigé pour moi.

Je vais laisser ceci ici au cas où quelqu'un d'autre trouverait ce problème en cherchant le message d'erreur sur Google.

Cela m'a aidé juste aujourd'hui. Peut-être devrions-nous signaler une erreur personnalisée avec un message un peu plus détaillé expliquant pourquoi cela s'est produit (ou peut-être juste un lien vers ce problème)

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

alt3red picture alt3red  ·  3Commentaires

gilles380 picture gilles380  ·  3Commentaires

Naatan picture Naatan  ·  3Commentaires

yarko picture yarko  ·  3Commentaires

JeromeHoen picture JeromeHoen  ·  6Commentaires