المستورد: لا توجد وحدة تسمى _sqlite3
-
27-09-2019 - |
سؤال
أنا أكتب لمحرك تطبيق Google واختباراتي المحلية تحصل على الخطأ التالي:
--> --> -->
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 ولكن لا يمكنني معرفة سبب عدم العثور عليه. أي مساعدة سيكون موضع تقدير كبير.
المحلول
يحاول محرك التطبيق SDK أن يمنحك أخطاء في أي وحدات من سيورف حقا محرك التطبيق (على خوادم Google). لا يتم دعم SQLite في الأخير ، لذا فإن إعطائك أخطاء هو مجرد طريقة SDK الرائعة لقول "لن تتمكن من نشر هذا الرمز على خوادم محرك تطبيقات Google الحقيقية"!
نصائح أخرى
يحاول App Engine رفع خطأ عندما يريد المرء استخدام SQLite3 لأول مرة. لا يحدث هذا لأن محرك التطبيق (المحلي) لا يسمح باستخدام SQLite3 كقاعدة بيانات بديلة ، وهذا لأن SQLITE3 غير مدعوم في أ مستوى الإنتاج. لذا ، يقوم App Engine بإعداده لتثبيطك عن استخدام SQLite3 حتى لا تخطئ في نشر التطبيق باستخدام SQLite3.
لذلك لاستخدام SQLITE3 في محرك التطبيق المحلي ، تحتاج إلى سرد SQLITE3 على النحو التالي:
اذهب إلى C: Program Files (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,
]
آمل أن يعمل هذا من أجلك.