Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python openshift套接字错误上的diy tornado_Python_Sockets_Tornado_Openshift - Fatal编程技术网

Python openshift套接字错误上的diy tornado

Python openshift套接字错误上的diy tornado,python,sockets,tornado,openshift,Python,Sockets,Tornado,Openshift,我试图在openshift diy盒带上部署龙卷风,但遇到了一些问题 我已经安装了python 2.7.6和tornado 3.2,并尝试在其上运行tornado hello world演示。但它总是出错。此外,我还为$OPENSHIFT\u REPO\u DIR/diy执行了chmod 777指令 import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def ge

我试图在openshift diy盒带上部署龙卷风,但遇到了一些问题

我已经安装了python 2.7.6和tornado 3.2,并尝试在其上运行tornado hello world演示。但它总是出错。此外,我还为$OPENSHIFT\u REPO\u DIR/diy执行了chmod 777指令

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

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

if __name__ == "__main__":
    application.listen(8080)
    tornado.ioloop.IOLoop.instance().start()
以下是我所做的事情和错误日志。如何解决此问题并启动应用程序

1.预安装:
  • $OPENSHIFT\u DATA\u DIR中的python 2.7.6
  • 龙卷风3.2经pip
  • 2.龙卷风代码 这个名为start.py的文件是$OPENSHIFT\u REPO\u DIR/diy中唯一的文件

    import tornado.ioloop
    import tornado.web
    
    class MainHandler(tornado.web.RequestHandler):
        def get(self):
            self.write("Hello, world")
    
    application = tornado.web.Application([
        (r"/", MainHandler),
    ])
    
    if __name__ == "__main__":
        application.listen(8080)
        tornado.ioloop.IOLoop.instance().start()
    
    3.1.1.1文件的操作: 开始:

    nohup$OPENSHIFT\u DATA\u DIR/bin/python$OPENSHIFT\u REPO\u DIR/diy/start.py>$OPENSHIFT\u diy\u LOG\u DIR/tornado\u server.LOG>&1&

    停止:

    4.log
    回溯(最近一次呼叫最后一次):
    文件“../app root/runtime/repo//diy/start.py”,
    第13行,在
    应用程序。听(8080)
    文件“../app root/data/lib/python2.7/site packages/tornado/web.py”,
    第1559行,请听
    侦听(端口、地址)
    文件“../app root/data/lib/python2.7/site packages/tornado/tcpserver.py”,
    第117行,听录音
    套接字=绑定\u套接字(端口,地址=地址)
    文件“../app root/data/lib/python2.7/site packages/tornado/netutil.py”,
    第104行,在bind_插座中
    sock.bind(sockaddr)
    文件“../app root/data/lib/python2.7/socket.py”,
    第224行,冰毒
    返回getattr(self.\u sock,name)(*args)
    socket.error:[Errno 13]权限被拒绝
    
    这将不起作用,因为您必须绑定到$OPENSHIFT\u DIY\u IP和$OPENSHIFT\u DIY\u端口。不要使用
    应用程序。听(8080)
    使用以下代码

    ip   = os.environ['OPENSHIFT_DIY_IP']
    port = int(os.environ['OPENSHIFT_DIY_PORT'])
    application.listen(port , ip)
    

    此外,我还写了一篇博客,可以帮助您在Openshift上部署Tornado时不必使用DIY墨盒

    检查此回购协议,例如:

    ip   = os.environ['OPENSHIFT_DIY_IP']
    port = int(os.environ['OPENSHIFT_DIY_PORT'])
    application.listen(port , ip)