加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-16 23:05:14 所属栏目:Python 来源:网络整理
导读:我是新手使用 Cloud9 IDE(c9),到目前为止看起来很棒,除了一些小事. 我从文档中看到,要启动一个简单的node.js http服务器,你必须传入process.env.PORT来代替常规端口,例如“8080”. 节点Hello World example: var http = require('http'); http.createServer
我是新手使用 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 Worldn');
 }).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项目上托管了上述代码,供所有人查看.谢谢!

解决方法

来自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"])

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读