【问题标题】:Using plotly from Google App engine使用 Google App 引擎中的 plotly
【发布时间】:2015-09-08 20:17:32
【问题描述】:

我正在尝试从 Google App 引擎应用程序中使用 plotly。独立的 python 程序可以工作,但是当我尝试将它合并到我的谷歌应用程序引擎应用程序中时,我得到了 sqlite 和 plotly 的导入错误,这两者都是我的项目所需要的。如何让 GA Engine 识别这些导入?

归结为最简单的代码是这样的:

form="""
<form action="/sqlhandler">
    <input name="q">
    <input type="Submit">
</form>
"""
class MainPage(webapp2.RequestHandler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/html'
        self.response.write(form)

class SQLHandler(webapp2.RequestHandler):
    def get(self):
        q = self.request.get("q")
        import sql_queries
        url = sql_queries.plot_graph(q)
        self.response.headers['Content-Type'] = 'text/html'
        self.response.write(url)

    app = webapp2.WSGIApplication([
        ('/', MainPage),
        ('/sqlhandler', SQLHandler)
       ], debug=True)

【问题讨论】:

  • 请提供代码以及您目前所做的工作
  • 见上文。 sql_queries.py 文件在其中导入 sqlite3(和情节),我得到一个 ImportError
  • 如果我不擅长 google-app-engine 但知道的人可能会有所帮助,您会遇到什么错误

标签: python google-app-engine plotly


【解决方案1】:

如何让 GA Engine 识别这些导入?

sqlite3 和 plotly 默认在 GAE 上均不可用(请参阅https://cloud.google.com/appengine/docs/python/tools/libraries27)。

为了使用它们,您必须在 GAE 应用程序中包含这些库的源文件,并将它们与项目的其余部分一起上传。

【讨论】:

  • 感谢@Tim,不过这实在是太可惜了。我用谷歌搜索看看是否有人做过,但还没有遇到任何事情。我想我可以将我的 sqlite3 数据库转换为 MySQL(虽然我不知道可能是可行的),看看我是否迁移 plot.ly
  • @user3079275 不客气。如果你想不通,已经有很多关于如何将库包含到 GAE 项目中的主题
【解决方案2】:

这在技术上是一个 hack,但我为解决我的问题所做的是在后台服务中运行我的绘图生成代码,该服务监听套接字上的请求、操作下载的数据、创建绘图并返回绘图 URL以便它可以嵌入到要显示的html页面中。它的开销很小,但套接字通信在同一台本地机器上,所以希望这不是那么糟糕。这样我就不必安装库了,不知道以后会遇到什么其他问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-11
    • 2016-11-22
    • 2017-07-08
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多