Python脚本突然无法编译“预期缩进块”

时间:2015-07-10 22:08:42

标签: python

这个脚本一直运行正常,但是现在当我去执行它时,它无法编译:

  File "/Users/camerongordon/Desktop/Python Scripts/hello.py", line 12
    def ConnectToDatabase(): 
    ^
IndentationError: expected an indented block

这是脚本:

import tornado.ioloop
import tornado.web
from tornado.httpclient import AsyncHTTPClient
from tornado import gen 
from tornado.options import define, options 
from apscheduler.schedulers.tornado import TornadoScheduler
from torndb import Connection

class MainHandler(tornado.web.RequestHandler):
    def get(self):

def ConnectToDatabase(): 
   db = Connection("127.0.0.1", 'helloworld', user='root', password='')
   return db

application = tornado.web.Application
([
    (r"/", MainHandler),
])

def ProcessQueue:

def main(): 
    # http://stackoverflow.com/questions/29316173/apscheduler-run-async-function-in-tornado-python
    # https://github.com/teriyakichild/example-scheduler/blob/master/example_scheduler/__init__.py

    application.listen(8888)

    db = ConnectToDatabase() 

    scheduler = TornadoScheduler()

    scheduler.add_job(ProcessQueue, 'interval', name='tick-interval-3-seconds', seconds=4, timezone='America/Chicago')

    scheduler.start()

    tornado.ioloop.IOLoop.current().start()

if __name__ == "__main__":
    main(); 

发生了什么事?一切都看起来语法正确,缩进正确。

2 个答案:

答案 0 :(得分:3)

class MainHandler(tornado.web.RequestHandler):
    def get(self):

def ConnectToDatabase(): 
   db = Connection("127.0.0.1", 'helloworld', user='root', password='')
   return db

您的def get(self):要求提供方法正文;如果你添加pass,事情就会奏效。您可能偶然省略或删除了一些代码:

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        pass

def ConnectToDatabase(): 
   db = Connection("127.0.0.1", 'helloworld', user='root', password='')
   return db

另外,你的缩进是不平等的 - 这不是一个好兆头。使用合适的编辑器。

答案 1 :(得分:0)

您可以尝试突出显示脚本并将所有缩进转换为标签吗? Sublime有一个选项。另外,你def get():没有身体。