如何使用Python在Cloud9中声明端口

前端之家收集整理的这篇文章主要介绍了如何使用Python在Cloud9中声明端口前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是新手使用 Cloud9 IDE(c9),到目前为止看起来很棒,除了一些小事.

我从文档中看到,要启动一个简单的node.js http服务器,你必须传入process.env.PORT来代替常规端口,例如“8080”.

节点Hello World example

var http = require('http');
 http.createServer(function (req,res) {
     res.writeHead(200,{'Content-Type': 'text/plain'});
     res.end('Hello World\n');
 }).listen(process.env.PORT,process.env.IP);

我想知道的是,在c9上,你只能使用javascript / node.js在端口上启动服务吗?或者其他语言也可以正常工作,也许还有其他一些传递端口的方法?特别是python Twisted?

上传了一些在本地为我工作的扭曲代码,但不能在c9上工作,因为它试图访问本地端口(已经在使用中).这是错误

twisted.internet.error.CannotListenError: Couldn't listen on any:8080: [Errno 98] Address already in use.

如果可能的话,如何在c9上运行以下示例?

Python Twisted Hello World example

from twisted.web import server,resource
from twisted.internet import reactor

class Simple(resource.Resource):
    isLeaf = True
    def render_GET(self,request):
        return "<html>Hello,world!</html>"

site = server.Site(Simple())
reactor.listenTCP(8080,site)
reactor.run()

通过documentation和github issues的初始搜索没有太多变化.我希望这是可能的,我错过了正确的参数传递.

编辑:更新下面的输出

节点代码

console.log(process.env.PORT)
console.log(process.env.IP)

终端输出

Running Node Process
Tip: you can access long running processes,like a server,at 'http://private-cloud.mrchampe.c9.io'.
Important: in your scripts,use 'process.env.PORT' as port and 'process.env.IP' as host.
8080
127.6.70.129

Python代码

import os

print os.environ["PORT"]
print os.environ["IP"]

终端输出

Running Python Process
8080
127.6.70.129

扭曲的代码

import os
import twisted

from twisted.web import server,world!</html>"

site = server.Site(Simple())

reactor.listenTCP(int(os.environ["PORT"]),interface=os.environ["IP"])
reactor.run()

终端输出

Running Python Process
hello world
Traceback (most recent call last):
  File "python/hello.py",line 17,in <module>

reactor.listenTCP(int(os.environ["PORT"]),interface=os.environ["IP"])
TypeError: listenTCP() takes at least 3 non-keyword arguments (2 given)

listenTCP TypeError很奇怪,因为2个参数在本地工作但在Cloud9上不工作.我不明白为什么使用这些参数不起作用.

我在this公共Cloud9项目上托管了上述代码,供所有人查看.谢谢!

@H_404_53@解决方法
来自Node.js sound like os.environ [“PORT”]的process.env.PORT和process.env.IP以及Python中的os.environ [“IP”].也许你可以试试:
reactor.listenTCP(int(os.environ["PORT"]),site,interface=os.environ["IP"])

猜你在找的Python相关文章