рдирдорд╕реНрддреЗ,
QNAP рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рдирдИ рдмрдирд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдИрд╡реЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдирдИ рдлрд╝рд╛рдЗрд▓ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ, рддреЛ рд╡реЙрдЪрдбреЙрдЧ рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рд╛рдЗрд▓ рдЕрднреА рднреА рдХреЙрдкреА рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╢реНрд░реЛрддрд╛ рдХреЛ рдХреНрд░реИрд╢ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдВрдбреЛрдЬ 8.1 рдкреНрд░реЛ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред
QNAP рдлрд░реНрдорд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдг: 3.7.2 рдмрд┐рд▓реНрдб 20120719
рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕:
Exception in thread Thread-3:
Traceback (most recent call last):
File "C:\Python34\lib\threading.py", line 920, in _bootstrap_inner
self.run()
File "C:\Python34\lib\site-packages\watchdog-0.8.3-py3.4.egg\watchdog\observers\api.py", line 146, in run
self.queue_events(self.timeout)
File "C:\Python34\lib\site-packages\watchdog-0.8.3-py3.4.egg\watchdog\observers\read_directory_changes.py", line 77, in queue_events
winapi_events = read_events(self._handle, self.watch.is_recursive)
File "C:\Python34\lib\site-packages\watchdog-0.8.3-py3.4.egg\watchdog\observers\winapi.py", line 347, in read_events
buf, nbytes = read_directory_changes(handle, recursive)
File "C:\Python34\lib\site-packages\watchdog-0.8.3-py3.4.egg\watchdog\observers\winapi.py", line 307, in read_directory_changes
raise e
File "C:\Python34\lib\site-packages\watchdog-0.8.3-py3.4.egg\watchdog\observers\winapi.py", line 303, in read_directory_changes
ctypes.byref(nbytes), None, None)
File "C:\Python34\lib\site-packages\watchdog-0.8.3-py3.4.egg\watchdog\observers\winapi.py", line 108, in _errcheck_bool
raise ctypes.WinError()
OSError: [WinError 58] The specified server cannot perform the requested operation.
WinError 64 рдФрд░ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдпрд╣рд╛рдБ рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ: рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдирд╛рдо рдЕрдм рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рд╕рд░реНрд╡рд░ рд╕реЗ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░реЛрд╕рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдПрд╕рдПрдордмреА рд╢реЗрдпрд░)ред
рдмрд╛рдж рдореЗрдВ рдПрдХ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐ рдХреИрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?
рдореИрдВ рдЕрдм dirwatcher рдереНрд░реЗрдб рдореЗрдВ рджреЗрд░реА/рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдвреВрдВрдв рд░рд╣рд╛ рд╣реВрдВ:
OSError: [WinError 64] рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдирд╛рдо рдЕрдм рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ
рдореБрдЭреЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рдереА рдЬрд╣рд╛рдВ рд░рд┐рдореЛрдЯ рдлрд╝рд╛рдЗрд▓ рд╢реЗрдпрд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ WinError 64 рд╕рдВрджреЗрд╢ рдорд┐рд▓ рд░рд╣рд╛ рдерд╛ред рдореИрдВрдиреЗ watchdog.utils.BaseThread рдХреНрд▓рд╛рд╕ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдЫреЛрдЯрд╛ рд░реИрдкрд░ рдмрдирд╛рдпрд╛ рдЬреЛ рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдкрдХрдбрд╝рдиреЗ рдФрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореИрдВ рдлрд┐рд░ рдСрдмреНрдЬрд░реНрд╡рд░ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рд░реИрдкрд░ рдХреЗ рд╕рд╛рде рдореВрд▓ рдмреЗрд╕ рдереНрд░реЗрдб рдХреНрд▓рд╛рд╕ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реВрдВред рдореЗрд░реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдХрд┐рд╕реА рднреА рдЕрдкрд╡рд╛рдж рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реВрдВ рдЬреЛ рд░рди рд╡рд┐рдзрд┐ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЕрд▓рдЧ рдереНрд░реЗрдб рдореЗрдВ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрддрд╛рд░ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╣реИрдХреА рд╕рдорд╛рдзрд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд┐рдирд╛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИрдВред
import logging
import threading
import watchdog.utils
logger = logging.getLogger(__name__)
class BaseThreadWrapper(watchdog.utils.BaseThread):
"""
Wrapper around watchdog BaseThread class.
"""
queue = None
def __init__(self):
super(BaseThreadWrapper, self).__init__()
self._original_run = self.run
self.run = self.run_wrapper
def run_wrapper(self):
try:
self._original_run()
except Exception as e:
logger.exception('%s thread exited with error',
threading.current_thread().name)
self.queue.put(e)
watchdog.utils.BaseThread = BaseThreadWrapper
рдЖрдк рд╡реЙрдЪрдбреЙрдЧ рдореЗрдВ рдХреМрди рд╕рд╛ рд╕рдорд╛рдзрд╛рди (рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди) рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВ рдЕрдм dirwatcher рдереНрд░реЗрдб рдореЗрдВ рджреЗрд░реА/рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдвреВрдВрдв рд░рд╣рд╛ рд╣реВрдВ:
OSError: [WinError 64] рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдирд╛рдо рдЕрдм рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ