gpt4 book ai didi

python - 尝试运行 Tornado main.py 时出现语法错误

转载 作者:行者123 更新时间:2023-11-28 21:18:59 24 4
gpt4 key购买 nike

这是我简单的 tornado 项目 main.py 文件:

import os
import os.path
import tornado.ioloop
import tornado.web
import tornado.httpserver
import tornado.options
from tornado.options import options


class Index(tornado.web.RequestHandler):

def get(self, *args, **kwargs):
self.write('Hello')

url_patterns = {
(r'/', Index),
}

if __name__ == "__main__":
tornado.options.parse_command_line()
app = tornado.web.Application(
url_patterns,debug=True,
cookie_secret="*****",
xsrf_cookies= False,
template_path=os.path.join(os.path.dirname(__file__), "templates"),
static_path= os.path.join(os.path.dirname(__file__), "static"),

)

http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(8080)
tornado.ioloop.IOLoop.instance().start()

当我想运行这个文件时,出现错误提示:

File "main.py", line 16
(r'/', Index),
^
SyntaxError: invalid syntax

我想在 centos 6 和 python 2.7.8 上运行它。这是我的错误图片:

enter image description here

我的项目有什么问题?

最佳答案

我猜您使用的是 python2.6,因为所有似乎 都是 python2.7 的有效语法。在python2.7上,

url_patterns = {
(r'/', Index),
}

尝试构造一个只有一个成员的集合,它是一个二元组。但是,如果 Index 不可哈希,它将失败并返回 TypeError。 Set literals 直到 python2.7 才存在,因此对于早期的 python 版本,您的代码将抛出 SyntaxError

一般来说,根据我的经验(webapp2),你的处理程序的顺序很重要——所以你最好使用一个有序的迭代而不是一个set .可能是 tuplelist。例如:

url_patterns = [
(r'/', Index),
]

显然,如果 tornado.web.Application 需要一个或另一个,请使用那个 ;-)(The docs show a list being used,所以这可能是安全的...)

关于python - 尝试运行 Tornado main.py 时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25579252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com