Note that there are some explanatory texts on larger screens.

plurals
  1. POOS X AppEngine - ImportError: No module named _sqlite3
    text
    copied!<p>UPDATE: This is a problem I am having with the 1.8.0 App Engine SDK on a fresh install of OS X 10.8.3.</p> <p>First up - there's a bunch of questions on SO with a similar title. I've checked them out, and I don't believe they answer my question. Mostly they recommend getting libsqlite3-dev and rebuilding python to get _sqlite3.so, but that's already where it should be:</p> <pre> $ find / -name _sqlite3.so Password: ... /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload/_sqlite3.so /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload/_sqlite3.so /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_sqlite3.so </pre> <p>The actual code that that causes app engine SDK to try to load that module is:</p> <pre><code> remaining = TaskSetElement.all().filter('taskSet', ts_key).filter('complete', False).count() </code></pre> <p>Here's the SDK stack trace:</p> <pre> <code> File "~/dev/myApp/myApp/task.py", line 90, in completeTaskSetElement remaining = TaskSetElement.all().filter('taskSet', ts_key).filter('complete', False).count() File "~/dev/GAE/google_appengine/google/appengine/ext/db/__init__.py", line 2133, in count result = raw_query.Count(limit=limit, **kwargs) File "~/dev/GAE/google_appengine/google/appengine/api/datastore.py", line 1698, in Count batch = self.GetBatcher(config=config).next() File "~/dev/GAE/google_appengine/google/appengine/datastore/datastore_query.py", line 2754, in next return self.next_batch(self.AT_LEAST_ONE) File "~/dev/GAE/google_appengine/google/appengine/datastore/datastore_query.py", line 2791, in next_batch batch = self.__next_batch.get_result() File "~/dev/GAE/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 604, in get_result return self.__get_result_hook(self) File "/Users/colin/dev/GAE/google_appengine/google/appengine/datastore/datastore_query.py", line 2528, in __query_result_hook self._batch_shared.conn.check_rpc_success(rpc) File "~/dev/GAE/google_appengine/google/appengine/datastore/datastore_rpc.py", line 1222, in check_rpc_success rpc.check_success() File "~/dev/GAE/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 570, in check_success self.__rpc.CheckSuccess() File "/Users/colin/dev/GAE/google_appengine/google/appengine/api/apiproxy_rpc.py", line 156, in _WaitImpl self.request, self.response) File "~/dev/GAE/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 200, in MakeSyncCall self._MakeRealSyncCall(service, call, request, response) File "~/dev/GAE/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 234, in _MakeRealSyncCall raise pickle.loads(response_pb.exception()) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 1382, in loads return Unpickler(file).load() File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 858, in load dispatch[key](self) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 1090, in load_global klass = self.find_class(module, name) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 1124, in find_class __import__(module) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sqlite3/__init__.py", line 24, in from dbapi2 import * File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sqlite3/dbapi2.py", line 27, in from _sqlite3 import * File "~/dev/GAE/google_appengine/google/appengine/tools/devappserver2/python/sandbox.py", line 856, in load_module raise ImportError('No module named %s' % fullname) ImportError: No module named _sqlite3 </code></pre> <p>I've got a bunch of datastore code prior to this line that's executing fine. I get the same problem running dev_appserver.py directly from the command line or in eclipse with pydev. <br/><br/> From the command line, everything looks good:</p> <pre> $ python Python 2.7.2 (default, Oct 11 2012, 20:14:37) [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import sqlite3 >>> import _sqlite3 >>> import sys >>> print(sys.path) ['', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC', '/Library/Python/2.7/site-packages'] >>> </pre> <p>This code snippet (running in app engine SDK) removes the app engine datastore code from the equation:</p> <pre><code> ... logging.info("Python Version: %s" % sys.version) logging.info(filter(lambda p: 'lib-dynload' in p, sys.path)) import sqlite3 ... </code> </pre> <p>It outputs this:</p> <pre> INFO 2013-05-26 05:55:12,055 main.py:38] Python Version: 2.7.2 (default, Oct 11 2012, 20:14:37) [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] INFO 2013-05-26 05:55:12,055 main.py:40] ['/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload'] ERROR 2013-05-26 05:55:12,058 cgi.py:121] Traceback (most recent call last): File "main.py", line 42, in import sqlite3 File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sqlite3/__init__.py", line 24, in from dbapi2 import * File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sqlite3/dbapi2.py", line 27, in from _sqlite3 import * File "~/dev/GAE/google_appengine/google/appengine/tools/devappserver2/python/sandbox.py", line 856, in load_module raise ImportError('No module named %s' % fullname) ImportError: No module named _sqlite3 </pre> <p>Any ideas what the problem is? Thanks,</p> <p>Colin</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload