2013-03-15 16 views
0

я скопировал пример кодя Пример сторожевой код показывает ошибку в питоне

import sys 
import time 
import logging 
from watchdog.observers import Observer 
from watchdog.events import LoggingEventHandler 

if __name__ == "__main__": 
logging.basicConfig(level=logging.INFO, 
        format='%(asctime)s - %(message)s', 
        datefmt='%Y-%m-%d %H:%M:%S') 
path = sys.argv[1] if len(sys.argv) > 1 else '.' 
event_handler = LoggingEventHandler() 
observer = Observer() 
observer.schedule(event_handler, path, recursive=True) 
observer.start() 
try: 
    while True: 
     time.sleep(1) 
except KeyboardInterrupt: 
    observer.stop() 
observer.join() 

пожалуйста, помогите мне я новичок в питона объявления сторожевого

я также требую еще несколько ответов на следующие вопросы: В какой форме отображается вывод следующего кода и где? Как изменить каталог, который будет отслеживаться в коде?

и попытался запустить его, как это было, сохранив его в файле test.py usig следующие

питон C: \ папка \ test.py

вернулся следующие erros

C:\Python33>python c:\folder\test.py 
Traceback (most recent call last): 
File "c:\folder\test.py", line 4, in <module> 
from watchdog.observers import Observer 
File "C:\Python33\lib\site-packages\watchdog\observers\__init__.py", line 34, 
in <module> 
from watchdog.observers.api import BaseObserver, DEFAULT_OBSERVER_TIMEOUT 
File "C:\Python33\lib\site-packages\watchdog\observers\api.py", line 62, in <module> 
from watchdog.utils.bricks import OrderedSetQueue as SetQueue 
File "C:\Python33\lib\site-packages\watchdog\utils\bricks.py", line 112, in <module> 
if not sys.version < (2, 6, 0): 
TypeError: unorderable types: str() < tuple() 

ответ

0

Это похоже на ошибку в сторожевом пса. Он работает в Python 2.6 и 2.7. sys.version - это строка в обоих и сопоставима с кортежем. Мне кажется странной идеей.

Это поведение может измениться с помощью 3.x. Если он не был правильно протестирован с 3.x, вы должны ожидать больше проблем. По-прежнему безопаснее использовать Python 2.7, потому что многие библиотеки не поддерживают 3.x.

Во всяком случае, если вы действительно, действительно хотите, чтобы преодолеть эту проблему, можно исправить линию 112 в сторожевой \ Utils \ bricks.py:

ver = tuple([int(x) for x in sys.version.split()[0].split('.')]) 
if not ver < (2, 6, 0): 

Это действительно некрасиво. Скорее используйте Python 2.7.

+0

спасибо за ответ сэр я попробовал код с Python 2.7 теперь не показывает никаких выходных – user2167337

+0

Не стесняйтесь, чтобы принять, если это решит вашу проблему. – ferrix

+0

не отображается какой-либо выход также В какой форме отображается следующий код и где? Как изменить каталог, который будет отслеживаться в коде? – user2167337