gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 22:16:29 25 4
gpt4 key购买 nike

我刚开始使用 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, 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(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 上托管了以上代码公共(public) Cloud9 项目供任何人查看。谢谢!

最佳答案

process.env.PORTprocess.env.IP 来自 Node.js sound like Python 中的 os.environ["PORT"]os.environ["IP"]。也许你可以试试:

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

关于python - 如何使用 Python 在 Cloud9 中声明端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12983518/

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