这个脚本一直运行正常,但是现在当我去执行它时,它无法编译:
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();
发生了什么事?一切都看起来语法正确,缩进正确。
答案 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():没有身体。