[英]Running 2 web.py servers from the same script Python
Python 的新手。 我正在嘗試在同一腳本上運行 2 個具有不同端口的 web.py 服務器。 基本上我想同時啟動 2 個腳本並能夠同時訪問兩個端口。 如果我將 go 連接到終端並單獨啟動每個腳本,它就可以工作,但我不希望那樣。
腳本 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))
您應該能夠通過在自己的線程中運行它們來做到這一點,如下所示:
import threading
# ... two servers ...
def server1():
app = web.application(urls, globals())
app.run()
def server2():
app = web.application(urls, globals())
web.httpserver.runsimple(app.wsgifunc(), ("0.0.0.0", 8888))
if __name__ == "__main__":
t1 = threading.Thread(target=server1)
t2 = threading.Thread(target=server2)
t1.start()
t2.start()
t1.join()
t2.join()
此外,您似乎正在使用 python 2.7,此時它已經很老了。 除非有某些特定原因,否則您應該使用 Python 3。如果不是全部,您的大多數代碼都應該在 Python 3 中正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.