- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这段代码(hello.py):
import os,sys
import tornado.ioloop
import tornado.web
import tornado.httpserver
#http server class
class http_server(tornado.web.RequestHandler):
def get(self):
self.write("Hello, getter!")
def post(self):
self.write("Hello, poster!")
#create http server
Handlers = [(r"/",http_server)]
App_Settings = {"debug":True}
HTTP_Server = tornado.web.Application(Handlers,**App_Settings)
#run http server
HTTP_Server.listen(9999)
tornado.ioloop.IOLoop.instance().start()
来自终端的命令第一次运行良好:
python hello.py
此后,终端继续等待 Tornado 的输出。当我打开 http://localhost:9999 , 它返回 "Hello, getter!"随心所欲。但是第二次,Python 显示错误:
Traceback (most recent call last):
File "hello.py", line 19, in <module>
HTTP_Server.listen(9999)
File "/usr/local/.../tornado/web.py", line 1227, in listen
server.listen(port, address)
File "/usr/local/.../tornado/netutil.py", line 100, in listen
sockets = bind_sockets(port, address=address)
File "/usr/local/.../tornado/netutil.py", line 265, in bind_sockets
sock.bind(sockaddr)
File "<string>", line 1, in bind
socket.error: [Errno 98] Address already in use
我按 Ctrl-Z 将“hello.py”发送到后台,但这并没有释放端口。如果我关闭终端,端口将被释放。然而,python 源文件的路径深深地嵌套在目录中,所以我不想在每次更改代码后关闭终端并重新启动它。有人向我建议我应该在应用程序设置中使用 debug=True 但这似乎与 Tornado 保持端口的问题无关。
我也试过“pidof python”,然后杀死所有 python 进程,但端口仍然被顽固的 Tornado 占用。有没有办法用一些 Python 语句释放 Tornado 持有的所有端口?还是手动?
最佳答案
如果您可以使用 Python 语句释放 Tornado 端口,这并不是您问题的真正答案,但由于它似乎已经解决了您的问题,所以我想我还是会写一个简短的答案;
Ctrl-Z
只会让您的程序进入休眠状态,不会释放任何端口。
另一方面,如果您使用 Ctrl-C
,程序将完全停止。这将允许您简单地使用 shell 历史记录重新启动它。
关于python - 如何释放端口然后第二次运行 Tornado 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9529482/
根据一些谷歌搜索,我安装了以下错误处理程序。然而,似乎返回 http 500 的 python 异常并没有被这些东西捕获,尽管 404 是这样。通过我在下面的代码中留下的打印语句,我可以看到它没有命中
我刚刚意识到 WebSocketHandler.write_message() 返回一个 Future。我以前没有在我的函数中产生过这个函数: @tornado.gen.coroutine
这是我的 Tornado 文件:: from tornado.wsgi import WSGIContainer from tornado.ioloop import IOLoop from torn
class MainHandler(BaseHandler): @tornado.web.authenticated def get(self): self.rende
我正在尝试使用 AsyncHTTPTestCase 测试 Tornado .我想测试标有 @tornado.web.authenticated 注释的处理程序。因为此处理程序需要身份验证,所以我们必须
我正在使用 Tornado Web Server (版本 4.1)使用 Python 2.7 创建 REST Web 应用程序。我的请求处理程序之一 (web.RequestHandler) 使用多部
我想知道tornado 的内部工作流程,并且看过this article ,很好,但我就是想不通 ioloop.py里面有这样一个函数 def add_handler(self, fd, handle
如何遍历从 Python/Tornado 处理程序传递到 Tornado 模板的字典? 我试过 {% for key, value in statistics %}
我有一个 Tornado 后端,为 Angular 前端提供服务。更新数据库时,tornado api 不会获取更新的数据。它仅在我重新启动服务器后出现。有人可以帮我解决这个问题吗?我希望获取的数据能
我尝试使用自定义的 WSGIContainer 来处理异步操作: from tornado import httpserver, httpclient, ioloop, wsgi, gen @gen.
from tornado.web import RequestHandler class HelloWorldHandler(RequestHandler): def get(self):
Pylint 遇到 @tornado.web.authenticated 时崩溃 class Handler1(tornado.web.RequestHandler): def get(sel
经过 tornado.gen documentation有人可以帮我理解 tornado.gen.coroutine 和 tornado.gen.engine 之间的确切区别 最佳答案 正如 gen.
代码如下: from tornadoredis import Client from tornado.ioloop import IOLoop from tornado.gen import coro
我有一个 tornado.websocket.WebSocketHandler 的子类。在该类中,我有一个方法使用 Django ORM 从子类模型中获取用户:django.contrib.auth.
我是 ssl 之类的新手,我已经使用 openssl 生成了自签名证书。 openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days
我已经从 tornado 4.2 移动到 tornado 6.0.3,我得到了错误 AttributeError:模块“tornado.web”没有属性“异步” 根据 tornado v6 seems
我一直在关注此 ( https://developer.ibm.com/tutorials/se-distributed-apps-zeromq-part2/) 教程,以设置使用 CurveZMQ 加
我在使用tornado-celery整合tornado和celery时,出现错误:``` traceback (most recent call last): File "/usr/local/l
我正在使用 Tornado 与 twitter 等第三方进行身份验证。 我的登录处理程序看起来像这样 class AuthLoginHandler(BaseHandler, tornado.auth.
我是一名优秀的程序员,十分优秀!