我用 Python 编写了一个程序,它使用matplotlib
和绘制一些图形tkinter
。
我想在我的网页上显示该程序以供免费使用。
如何让这个 Python 程序在网页上运行?
4 回答
如果您对使用 web 框架烧瓶感兴趣,请查看这个,从关于如何在烧瓶中使用 matplotlib 即时创建图形的讨论中。
我建议将图像存储在 amazons s3 服务之类的地方。这样,图像将很容易在会话之间进行访问。所以从上面的线程链接修改代码......
将对象返回为 png:
from matplotlib.pyplot import figure
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
import StringIO
def create_a_graph()
fig = figure(figsize=a_size_integer,a_size_integer))
canvas = FigureCanvas(fig)
canvas.print_png(png_output)
return png_output
然后使用boto将它们上传到亚马逊 s3 站点,并将它们显示在您选择的任何框架上。
我正在做的一个当前项目就是这样做的。查看文件:graph.py、tools.py、views.py 和 base.html。当然,这需要了解 boto、flask 和 matplotlib,但至少它为您提供了一个起点。
您应该查看mod_wsgi和 python 社区中存在的许多 web 包之一,或者构建您自己的。
但是您还需要了解 tkinter 是一个 gui 库,它不会从网络上运行,这听起来像是您想要的。但相反,您可以为您的代码构建一个 Web 界面,如果表示逻辑与应用程序逻辑很好地分离,这应该不难。话虽如此,如果您不熟悉一般编程或特别是 Web 编程,这绝对不是一件容易的事。
看看Flask作为一个轻量级框架,用于制作 Web 应用程序,然后有一个类似于以下的路由:
@app.route("/graph/<input>")
def drawGraph(input):
# Graph drawing code goes here.
image = # The image file as a string, as if you'd read it in from a file
# object
return Request(image, mimetype="image/png")
然后在模板中,您可以使用/graph/
url 为适当的输入获取图形并在<img>
标签中呈现它们。