Watchdog: Python 2.7 и Windows 7

Созданный на 5 дек. 2011  ·  3Комментарии  ·  Источник: gorakhargosh/watchdog

Поскольку у меня были проблемы с python2.5, я попробовал также python 2.7 и теперь получаю другую ошибку:
(Я предполагаю, что что-то не так с ctypes и dll Windows, но я не могу сказать больше, чем это ...)

Cc C-cException в потоке Thread-2:
Отслеживание (последний вызов последний):
Файл "c: Python27libthreading.py", строка 552, в __bootstrap_inner
self.run ()
Файл "c: Python27libsite-packageswatchdog-0.5.4-py2.7.eggwatchdogobserversapi.py", строка 192, выполняется
self.queue_events (self.timeout)
Файл "c: Python27libsite-packageswatchdog-0.5.4-py2.7.eggwatchdogobserversread_directory_changes.py", строка 80, в queue_events
self.watch.is_recursive)
Файл "c: Python27libsite-packageswatchdog-0.5.4-py2.7.eggwatchdogobserverswinapi_common.py", строка 130, в read_directory_changes
Никто)
Файл "c: Python27libsite-packageswatchdog-0.5.4-py2.7.eggwatchdogobserverswinapi.py", строка 103, в _errcheck_bool
поднять ctypes.WinError ()
WindowsError: [Ошибка 1] Некорректная функция.

Incomplete (need more info) windows

Самый полезный комментарий

Я сам немного покопался в api Windows, и, конечно же, я смог определить проблему.

Просматривая возвращаемые значения ReadDirectoryChangesW, я обнаружил следующее:

Если сетевой перенаправитель или целевая файловая система не поддерживает эту операцию, функция завершается ошибкой с ERROR_INVALID_FUNCTION.
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365465 (v = vs.85) .aspx

Я работал над сетевым ресурсом.
Копирование файлов, которые мне нужно посмотреть, в локальную файловую систему исправило это за меня.

Я оставлю это здесь на тот случай, если кто-то еще обнаружит эту проблему при поиске сообщения об ошибке в Google.

Все 3 Комментарий

Привет,
Мне очень жаль, что я столкнулся с этой проблемой двухлетней давности, но я столкнулся с той же проблемой с Windows 10, python2.7 и сторожевым псом 0.8.3.

Его можно воспроизвести с помощью следующего фрагмента кода:

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

Результирующее исключение выглядит так:

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.

Скажите, пожалуйста, если вам нужна дополнительная информация.

Я сам немного покопался в api Windows, и, конечно же, я смог определить проблему.

Просматривая возвращаемые значения ReadDirectoryChangesW, я обнаружил следующее:

Если сетевой перенаправитель или целевая файловая система не поддерживает эту операцию, функция завершается ошибкой с ERROR_INVALID_FUNCTION.
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365465 (v = vs.85) .aspx

Я работал над сетевым ресурсом.
Копирование файлов, которые мне нужно посмотреть, в локальную файловую систему исправило это за меня.

Я оставлю это здесь на тот случай, если кто-то еще обнаружит эту проблему при поиске сообщения об ошибке в Google.

Это помогло мне только сегодня. Может быть, нам следует создать специальную ошибку с более подробным сообщением о том, почему это произошло (или, может быть, просто ссылку на эту проблему)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

fx86 picture fx86  ·  3Комментарии

hgrecco picture hgrecco  ·  6Комментарии

alciomarhollanda picture alciomarhollanda  ·  5Комментарии

yarko picture yarko  ·  3Комментарии

gilles380 picture gilles380  ·  3Комментарии