我想在heroku上启动Python HTTPServer。请注意,这不是Python框架。代码片段附在下面。我怎样才能在Heroku上启动这个服务器?我能够在本地机器上运行此服务器。但是我希望它部署在Heroku上。请提供见解。如何在heroku上启动Python SimpleHTTPServer?
服务器代码:
web: python yourscript.py
我想在heroku上启动Python HTTPServer。请注意,这不是Python框架。代码片段附在下面。我怎样才能在Heroku上启动这个服务器?我能够在本地机器上运行此服务器。但是我希望它部署在Heroku上。请提供见解。如何在heroku上启动Python SimpleHTTPServer?
服务器代码:
web: python yourscript.py
当Heroku上运行您的程序,它定义了环境变量PORT
你应该暴露你的服务器的内部端口:
import http.server
from http.server import HTTPServer, BaseHTTPRequestHandler
import socketserver
import threading
PORT = 5001
class myHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.write("Heroku is awesome")
class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
pass
try:
server = ThreadedTCPServer(('', PORT), myHandler)
print ('Started httpserver on port ' , PORT)
ip,port = server.server_address
server_thread = threading.Thread(target=server.serve_forever)
server_thread.daemon = True
server_thread.start()
allow_reuse_address = True
server.serve_forever()
except KeyboardInterrupt:
print ('CTRL + C RECEIVED - Shutting down the REST server')
server.socket.close()
这没有帮助。使用PORT = environ ['PORT']而不是使用PORT = 8081.它在environ ['PORT']显示关键错误。 –
这究竟是什么,我需要这样做,这有效吗? –
在heroku上运行时,或者在本地计算机上运行时,是否收到错误消息? – Noskcaj
以上评论无效。因为我正在定义一个你看到的端口。我正在打开https://myprojectname.heroku.com,但网页未加载或不打印输出。做这项工作的正确方法是什么? –