ImporteRor: Нет модуля по имени _sqlite3
-
27-09-2019 - |
Вопрос
Я пишу для двигателя Google App, и мои локальные тесты получают следующую ошибку:
--> --> -->
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3185, in _HandleRequest
self._Dispatch(dispatcher, self.rfile, outfile, env_dict)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3128, in _Dispatch
base_env_dict=env_dict)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 515, in Dispatch
base_env_dict=base_env_dict)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2387, in Dispatch
self._module_dict)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2297, in ExecuteCGI
reset_modules = exec_script(handler_path, cgi_path, hook)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2193, in ExecuteOrImportScript
exec module_code in script_module.__dict__
File "C:\Users\Chris Reade\Documents\SI 182\Final\geneticsalesman\Final.py", line 7, in <module>
from pyevolve import DBAdapters
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1272, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1922, in load_module
return self.FindAndLoadModule(submodule, fullname, search_path)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1272, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1824, in FindAndLoadModule
description)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1272, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1775, in LoadModuleRestricted
description)
File "C:\Users\Chris Reade\Documents\SI 182\Final\geneticsalesman\pyevolve\DBAdapters.py", line 21, in <module>
import sqlite3
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1272, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1922, in load_module
return self.FindAndLoadModule(submodule, fullname, search_path)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1272, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1824, in FindAndLoadModule
description)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1272, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1775, in LoadModuleRestricted
description)
File "C:\Python26\lib\sqlite3\__init__.py", line 24, in <module>
from dbapi2 import *
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1272, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1922, in load_module
return self.FindAndLoadModule(submodule, fullname, search_path)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1272, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1824, in FindAndLoadModule
description)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1272, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1775, in LoadModuleRestricted
description)
File "C:\Python26\lib\sqlite3\dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: No module named _sqlite3
Мой направление Python имеет файл lib для sqlite3, но я не могу сказать, почему он не может его найти. Любая помощь будет очень ценится.
Решение
App Engine SDK сложно дать вам ошибки на любом импорте модуля, который будет выполнен в настоящий Приложение Engine (на серверах Google). SQLite не поддерживается в последнем, поэтому предоставление вам ошибок - это просто приятный способ сказать: «Вы не сможете развернуть этот код на реальных серверах Engine App Engine»!
Другие советы
App Engine пытается поднять ошибку, когда кто-то хотел использовать SQLite3 в первый раз. Это происходит не потому, что приложений (локальный) не позволяет использовать SQLite3 в качестве альтернативной базы данных, это потому, что SQLite3 не поддерживается на Уровень производства. Отказ Таким образом, App Engine делает его на основе того, чтобы отговорить вас от использования SQLite3, чтобы вы не будете ошибочно развернуть приложение с SQLite3.
Итак, чтобы использовать SQLite3 в вашем локальном приложении, вам нужно белый список SQLite3 следующим образом:
идти к C: Файлы программы (x86) Google Google_appengine Google Appengine Tools devappserver2 python Runtime Sandbox.py
Откройте файл, и вы найдете постоянную переменную _white_list_c_modules, объявленные как:
_WHITE_LIST_C_MODULES = [
'array',
'_ast',
'binascii',
'_bisect',
.
.
.,
]
Затем добавьте SQLite3 следующим образом:
_WHITE_LIST_C_MODULES = [
'array',
'_ast',
'binascii',
'_bisect',
.
.
.,
_sqlite3,
]
Я надеюсь, что это будет работать для вас.