sqlite ImportError:没有名为_sqlite3 Google App Engine的模块

时间:2019-10-11 00:54:54

标签: python sqlite google-app-engine flask

我正在尝试通过Google App Engine部署Python Flask,HTML,JavaScript Web应用程序。

我正在将sqlite3用于数据库

 >>> python
 >>> import sqlite3

这很好用。使用

部署我的Web应用程序
$ gcloud app deploy

工作正常。

但是,当我访问该页面时,会收到此消息

错误:服务器错误

服务器遇到错误,无法完成您的请求。 请在30秒内重试。

当我检查https://console.cloud.google.com/home/dashboard处的错误报告时 我收到此错误

Traceback (most recent call last):
File "/base/alloc/tmpfs/dynamic_runtimes/python27g/941d77da994078b1/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/941d77da994078b1/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 311, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/941d77da994078b1/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "/base/data/home/apps/p~live-business-solutions/20191010t190446.421644656225294026/webapp.py", line 9, in <module>
    from databasefunctions import *
  File "/base/data/home/apps/p~live-business-solutions/20191010t190446.421644656225294026/databasefunctions.py", line 5, in <module>
    import sqlite3
  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/941d77da994078b1/python27/python27_dist/lib/python2.7/sqlite3/__init__.py", line 24, in <module>
    from dbapi2 import *
  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/941d77da994078b1/python27/python27_dist/lib/python2.7/sqlite3/dbapi2.py", line 28, in <module>
    from _sqlite3 import *
ImportError: No module named _sqlite3

是从行上

import sqlite3

我的databasefunctions.py文件的

。我不确定为什么会这样,有人可以帮忙吗?

我想知道我是否应该在要求.txt中包含sqlite3?如果可以的话,我该怎么做?

1 个答案:

答案 0 :(得分:0)

来自this answer

  

sqlite3是标准库的可选部分。

因此,它不是通过pip并因此使用requirements.txt文件安装的。但是它需要一些包级别的依赖项libsqlite3-devsqlite-devel,这些依赖项不在Google App Engine Python3运行时中提供。因此,无法在Google App Engine标准上使用sqlite3

解决方案是使用Cloud Run,这将允许您在Docker容器中运行应用程序,并且可以自定义运行时。您可以从此Quickstart guide开始,也可以检查this answer我提供的与其他库差不多的问题。