2013-07-08 64 views
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() 

问题: 如果调用作业()改为只排程,它的确定 所以我感到困惑的是,为什么初始化(个体经营)不能完全叫完? 和'没有handerls可以找到记录器“apscheduler.scheduler”'有什么问题? 以上Python代码的结果:没有处理程序可以为记录器“apscheduler.scheduler”中找到

在工作()

在ListHref类!

没有handerls可以为记录器 “apscheduler.scheduler”

在工作()

在ListHref类中找到!

在工作()

在ListHref类!

...(等等)

+0

尝试初始化[日志记录](http://docs.python.org/2/library/logging.html)模块。像'import logging; logging.basicConfig()'。这将为根记录器创建一个处理程序,并应使apscheduler感到高兴。 – tdelaney

+0

谢谢你!你的建议解决了我的问题,并从日志文件中发现'import os path = os.path.dirname(\ _ \ _ file \ _ \ _)'python代码产生了这个bug。结果显示“全局”\ _ \ _文件\ _ \ _“没有被定义”,在我将其编码为“path ='F:\ Python_Test'”之后,everthing是可以的。那么这里“\ _ \ _ file \ _ \ _”有什么问题? – Dyllian

+0

我没有一个很好的解释,除非你将它输入到解释器中(也就是运行python并输入)。通常,\ _ \ _ file \ _ \ _是当前模块的相对文件名,但解释器没有“当前模块”,\ _ \ _ file \ _ \ _不存在。 – tdelaney

回答

40

apscheduler使用需要被初始化的蟒logging module。日志记录是有点复杂(见链接),但最少是:

import logging 
logging.basicConfig() 

basicConfig支持一些常见的日志记录功能,但它的价值搞清楚一些记录程序更复杂的用途。

相关问题