【问题标题】:Python sqllite3 with bottle framework on Google App EnginePython sqlite3 与 Google App Engine 上的瓶子框架
【发布时间】:2015-11-19 07:46:45
【问题描述】:

不是重复的。根据this link 下写的内容,导入 sqlite3 应该在 GAE 下工作。但是,在我的脚本中导入 sqlite3 会引发以下错误(在将用于 Python27 的 sqlite3 而不是用于 Python34 的 sqlite3 放在 app 目录中之后,我设法省略了前面的错误,如底部所述):

import sqlite3

File "d:\python\jcifapp\jcifapp_ver6\sqlite3\__init__.py", line 24, in <module>
from dbapi2 import *
File "d:\python\jcifapp\jcifapp_ver6\sqlite3\dbapi2.py", line 27, in <module>
from _sqlite3 import *
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\python\sandbox.py", line 950, in load_module
    raise ImportError('No module named %s' % fullname)
ImportError: No module named _sqlite3

我认为放置 _sqlite3 可以解决问题或至少将其向前推进。由于 import sqlite3 在我机器上安装的 Py27 和 Py34 下完美运行,所以从我的计算机启动的脚本必须可以访问 _sqlite3。我只在 Python27\libs 中找到了 _sqlite3.lib(我使用的是 Windows),但将此文件放入 app 目录并没有帮助。有谁知道如何使 GAE 下的 import sqlite3 工作,从上述链接下的帖子来看似乎应该是可能的?

我一直在开发一个带有瓶子框架的应用程序,它通过用户表单收集数据并在 sqlite 数据库中/从 sqlite 数据库中存储/检索数据。在本地一切正常,但在将所有文件部署到 Google App Engine 后,我收到的日志显示导入与 sqlite3 模块相关的模块时出现问题:

  File "D:\python\jcifapp\jcifapp_new\sqlite3\__init__.py", line 24, in <module>

     *from sqlite3.dbapi2 import *
  File "D:\python\jcifapp\jcifapp_new\sqlite3\dbapi2.py", line 25, in <module>
     import collections.abc
  ImportError: No module named abc
  INFO     2015-08-25 22:32:14,997 module.py:808] default: "GET /favicon.ico HTTP/1.1" 500 -*

我尝试将 sqlite3 模块放入项目目录但无济于事。当我在本地运行 Python 脚本时,我在导入 sqlite3 时没有遇到任何问题。我也没有问题部署到 GAE 并从那里运行不使用 sqlite3 的应用程序。 有谁知道如何使 GAE 与 sqlite3 一起工作? 谢谢

【问题讨论】:

标签: python google-app-engine sqlite bottle


【解决方案1】:

这是解决我问题的答案: OS X AppEngine - ImportError: No module named _sqlite3 在 sandbox.py 中将 '_sqlite3' 添加到 _WHITE_LIST_C_MODULES 也适用于 Win7。

【讨论】:

    猜你喜欢
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 2011-05-30
    相关资源
    最近更新 更多