从同一脚本Python运行2个web.py服务器

从同一脚本Python运行2个web.py服务器,python,raspberry-pi,web.py,Python,Raspberry Pi,Web.py,Python新手。 我正在尝试从同一个脚本运行两个web.py服务器,服务器上有不同的端口。 基本上,我希望同时启动这两个脚本,并能够同时访问这两个端口。 如果我走到终端,分别启动每个脚本,它就会工作,但我不希望这样 脚本1 #!/usr/bin/python import sys sys.path.append('/usr/local/lib/python2.7/dist-packages/') import web import time urls = ( '/', 'index'

Python新手。 我正在尝试从同一个脚本运行两个web.py服务器,服务器上有不同的端口。 基本上,我希望同时启动这两个脚本,并能够同时访问这两个端口。 如果我走到终端,分别启动每个脚本,它就会工作,但我不希望这样

脚本1

#!/usr/bin/python
import sys
sys.path.append('/usr/local/lib/python2.7/dist-packages/')
import web
import time
urls = (
    '/', 'index'
)
class index:

    def GET(self):
        f = open('LiveFlow.txt', 'r')
        lineList = f.readlines()
        contents = lineList[-1]
        return contents

if __name__ == "__main__":
    app = web.application(urls, globals())
    app.run()
脚本2

#!/usr/bin/python
import sys
sys.path.append('/usr/local/lib/python2.7/dist-packages/')
import web
import time

class MyApplication(web.application):
          def run(self, port=8080, *middleware):
              func = self.wsgifunc(*middleware)
              return web.httpserver.runsimple(func, ('0.0.0.0', port))

urls = (

    '/', 'index'

)

class index:


    def GET(self):

        f2 = open('FlowMeterOutput.txt', 'r')
        lineList1 = f2.readlines()
        contents1 = lineList1[-1]

        return contents1

if __name__ == "__main__":

    app = web.application(urls, globals())
    web.httpserver.runsimple(app.wsgifunc(), ("0.0.0.0", 8888))

您应该能够通过在自己的线程中运行它们来实现这一点,如下所示:

导入线程
# ... 两台服务器。。。
def server1():
app=web.application(URL,globals())
app.run()
def server2():
app=web.application(URL,globals())
runsimple(app.wsgifunc(),(“0.0.0.0”,8888))
如果名称=“\uuuuu main\uuuuuuuu”:
t1=线程。线程(目标=服务器1)
t2=线程。线程(目标=服务器2)
t1.start()
t2.start()
t1.join()
t2.join()

此外,您似乎正在使用Python2.7,目前它已经非常旧了。除非有特定的原因,否则您应该使用Python3。大多数代码在Python 3中都可以正常工作,如果不是全部的话。

您应该能够通过在自己的线程中运行它们来实现这一点,如下所示:

导入线程
# ... 两台服务器。。。
def server1():
app=web.application(URL,globals())
app.run()
def server2():
app=web.application(URL,globals())
runsimple(app.wsgifunc(),(“0.0.0.0”,8888))
如果名称=“\uuuuu main\uuuuuuuu”:
t1=线程。线程(目标=服务器1)
t2=线程。线程(目标=服务器2)
t1.start()
t2.start()
t1.join()
t2.join()

此外,您似乎正在使用Python2.7,目前它已经非常旧了。除非有特定的原因,否则您应该使用Python3。大多数代码在Python 3中都可以正常工作,如果不是全部的话。

谢谢@gerwin的帮助。我得到了一些不想要的结果,太多了,无法在这里发布。但我目前正在更新我的Raspian OS和Python版本。很快我会有一个更好的答案谢谢你的帮助@gerwin。我得到了一些不想要的结果,太多了,无法在这里发布。但我目前正在更新我的Raspian OS和Python版本。很快我就会有一个更好的答案