在Heroku上运行Python CGI应用程序(Run Python CGI Applicatio

2019-08-03 02:54发布

我做了一个简单的应用程序,使得使用Python的CGI脚本。 我有一个工作的本地版本(正常工作与lighttpd的),但现在我想将其上传到Heroku的。 该应用程序包含的2个或3脚本上的文件和打印信息返回给浏览器进行操作,所以我不认为我会需要比CGI以外的任何模块。

但是Heroku的文档只介绍了如何上传与花哨的Web框架的Python应用程序,而我没有使用任何这些。

我想知道是否有可能在Heroku上运行CGI脚本,如果是的话,该怎么办呢。

Answer 1:

Heroku的雪松是围绕自托管Web应用程序为中心的,所以你需要能够捆绑在一起,你的应用程序并运行它作为一个单一的命令。

我认为,最简单的方法是将你的程序移植到瓶中。 这是不是很复杂,尤其是如果它仅仅是2或3的脚本。

另一种选择(根据您的性能需求)是使用简单的CGI服务器在Python标准库和Python的buildpack 。 我认为你需要在./cgi-bin目录中捆绑了你的脚本,并启动服务器(procfile):

 web: bin/python -m CGIHTTPServer $PORT

最复杂的方式是捆绑的lighttpd和脚本一起写一个shell脚本来启动这一切。 你必须确保你的编译的二进制文件与Heroku的兼容。 我想看看PHP buildpack为出发点。



Answer 2:

我问,对Heroku支持有关,我想担任Heroku的平台,这里的响应CGI应用程序:

你好,

不幸的是,我们不支持CGI风格的应用程序,仅纯Python的。 你可能有一些运气使用Python CGIHTTPServer模块多一些玩耍,但如果它不适合你的需求,你可能是出于运气。



Answer 3:

要在添加到顶部的答案,为Python 3的命令Procfile应该是这样的。

web: python -m http.server --cgi $PORT


文章来源: Run Python CGI Application on Heroku