Для регистратора «apscheduler.scheduler» не найдено обработчиков,

17
from apscheduler.scheduler import Scheduler
import os
class ListHref():
    def __init__(self):
       print 'In ListHref Class!'
       self.name_hrefs = {}
       self.name_img = {}
       self.path = os.path.dirname(__file__)
       print 'Out ListHref Class'
    def other_function():...

def job(): #function named job
    print 'In job!'
    book_href = ListHref()
    print 'book_href created!'

if __name__ == "__main__":
    sched = Scheduler()
    #job() #it's ok if job() called only
    sched.daemonic = False #non daemon thread 
    sched.add_interval_job(job,minutes=0.1)
    sched.start()

Проблема: Если call job () только вместо расписания, это нормально Поэтому я смущен тем, что почему init (self) не может быть вызван полностью? и что не так: «Никаких помощников не найдено для регистратора« apscheduler.scheduler »? Выше результата кода python:

В задании ()

В классе ListHref!

Для регистратора «apscheduler.scheduler» не найдено ручных инструментов

В задании ()

В классе ListHref!

В задании ()

В классе ListHref!

... (так далее)

    
задан Dyllian 08.07.2013 в 15:49
источник
  • Попробуйте инициализировать модуль регистрации. Что-то вроде журнала импорта, logging.basicConfig (). Это создаст обработчик для корневого регистратора и сделает apclcheduler счастливым. –  tdelaney 08.07.2013 в 17:33
  • Спасибо u! Ваш запрос исправил мою проблему, и из файла журнала я обнаружил, что «import os path = os.path.dirname (__ file__)» код python сделал ошибку. результаты показали, что «глобальный» __файл __ «не определен», после того, как я закодировал его как «path = 'F: \ Python_Test», все в порядке. Так вот что случилось с «__file__»? –  Dyllian 09.07.2013 в 04:41
  • У меня нет хорошего объяснения, если вы не вводите его в интерпретатор (то есть просто запускаете python и вводите его). Обычно __file__ - это относительное имя текущего модуля, но для интерпретатора нет «текущего модуля», а __file__ не существует. –  tdelaney 09.07.2013 в 17:04

1 ответ

40

apscheduler использует python модуль ведения журнала , который необходимо инициализировать. Ведение журнала немного сложнее (см. Ссылку), но минимум:

import logging
logging.basicConfig()

basicConfig поддерживает некоторые общие функции ведения журнала, но стоит выяснить некоторые из более сложных применений для регистратора.

    
ответ дан tdelaney 09.07.2013 в 17:09
источник