【问题标题】:Google app engine: parse a sql database谷歌应用引擎:解析 sql 数据库
【发布时间】:2015-01-25 12:48:20
【问题描述】:

我有一个带有 sql db 文件的 MyFile 实体:

class MyFile(ndb.Model):
  data = ndb.BlobProperty()

data 属性存储 sql db 文件。所以在 requestHandler 中我需要解析这个文件。 我正在尝试使用标准 sqlite3 库,但在 gae 方面出现错误:

ImportError: No module named _sqlite3

使用PyDbLite 库我也遇到了错误:

    from PyDbLite.SQLite import Database, Table
File "libs/PyDbLite/SQLite.py", line 81, in <module>
    from pysqlite2 import dbapi2 as sqlite

goggle app engine有什么方法可以解析sql数据库吗?

我知道 gae 使用 NoSQL 数据存储,我只需要处理 sql db 文件。

【问题讨论】:

  • 您是否已将这些模块提供给您的应用引擎应用程序?如果您在部署时没有上传它们,您将无法导入它们(即使这一切似乎都在本地工作)。您可以将大多数纯 python 和许多非纯模块添加到您的 gae 应用程序中。
  • @PaulCollingwood 是的,我上传了其他库,但仍然出现此错误。
  • 也许它在 GAE 上不可用,因为它是 C 组件,不确定。
  • 您不能使用在 aopengine 上使用文件系统的库。将数据库上传到与 appengine 一起使用的谷歌云 sql
  • 您应该能够读取随您的应用上传的文件,而不是写入它们。我认为原因更有可能是模块在部署时不在python路径中。

标签: sql google-app-engine python-2.7 sqlite


【解决方案1】:

模块_sqlite3可能在你本地的python路径下,但是部署时找不到模块。您可以通过在生产中打印并确保该模块在该路径上可见来调试您的 python 路径(请记住,任何旧文件或文件夹都不会被视为可供 python 导入的模块,它需要有 @987654322 @)。

您会收到该错误的唯一原因是您要么

A) 未能上传您在项目中使用的模块,错误地认为由于它对您的本地 python 代码可见,因此在部署时应该可见

B) 未能正确引用上传的模块。我在第一段中的 cmets 应该可以帮助您调试此案例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 2013-05-17
    • 2014-07-05
    • 2014-10-21
    相关资源
    最近更新 更多