You need to install PyCrypto yourself. Grab the tarball from https://www.dlitz.net/software/pycrypto/ and run setup.py. Unfortunately, installing PyCrypto using easy_install won't work with the dev_appserver on OSX.
On Tuesday, 2 October 2012 20:30:46 UTC+10, coto wrote: > > What's the best way on getting pycrypto to work for dev with GAE? > > We are using Crypto in this open source project > https://github.com/coto/gae-boilerplate/blob/master/boilerplate/lib/utils.py#L11 > > But this is what happen when you run locallly: > > /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python > /usr/local/google_appengine/dev_appserver.py . > WARNING 2012-10-02 10:07:30,936 rdbms_mysqldb.py:74] The rdbms API is not > available because the MySQLdb library could not be loaded. > WARNING 2012-10-02 10:07:31,431 datastore_file_stub.py:518] Could not > read datastore data from > /var/folders/zr/tclqpy5j6fx797t1fqf2j_d00000gn/T/dev_appserver.datastore > WARNING 2012-10-02 10:07:31,469 dev_appserver.py:3621] Could not > initialize images API; you are likely missing the Python "PIL" module. > ImportError: No module named _imaging > INFO 2012-10-02 10:07:31,568 dev_appserver_multiprocess.py:655] > Running application dev~sandengine on port 8080: http://localhost:8080 > INFO 2012-10-02 10:07:31,568 dev_appserver_multiprocess.py:657] Admin > console is available at: http://localhost:8080/_ah/admin > INFO 2012-10-02 10:07:37,680 recording.py:673] Saved; key: > __appstats__:057600, part: 27 bytes, full: 1643 bytes, overhead: 0.000 + > 0.001; link: http://localhost:8080/_ah/stats/details?time=1349172457674 > INFO 2012-10-02 10:07:37,696 dev_appserver.py:3056] "GET /_ah/admin > HTTP/1.1" 302 - > INFO 2012-10-02 10:07:37,868 recording.py:673] Saved; key: > __appstats__:057700, part: 112 bytes, full: 14075 bytes, overhead: 0.001 + > 0.007; link: http://localhost:8080/_ah/stats/details?time=1349172457722 > INFO 2012-10-02 10:07:37,902 dev_appserver.py:3056] "GET > /_ah/admin/datastore HTTP/1.1" 200 - > INFO 2012-10-02 10:07:38,325 recording.py:673] Saved; key: > __appstats__:058200, part: 42 bytes, full: 1694 bytes, overhead: 0.000 + > 0.001; link: http://localhost:8080/_ah/stats/details?time=1349172458266 > INFO 2012-10-02 10:07:38,350 dev_appserver.py:3056] "GET > /_ah/admin/images/google.gif HTTP/1.1" 200 - > ERROR 2012-10-02 10:07:42,392 wsgi.py:203] > Traceback (most recent call last): > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", > > line 195, in Handle > handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", > > line 239, in _LoadHandler > handler = __import__(path[0]) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 719, in Decorate > return func(self, *args, **kwargs) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 1923, in load_module > return self.FindAndLoadModule(submodule, fullname, search_path) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 719, in Decorate > return func(self, *args, **kwargs) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 1787, in FindAndLoadModule > description) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 719, in Decorate > return func(self, *args, **kwargs) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 1730, in LoadModuleRestricted > description) > File "/Users/coto/gae-boilerplate/main.py", line 25, in <module> > import routes > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 719, in Decorate > return func(self, *args, **kwargs) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 1923, in load_module > return self.FindAndLoadModule(submodule, fullname, search_path) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 719, in Decorate > return func(self, *args, **kwargs) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 1787, in FindAndLoadModule > description) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 719, in Decorate > return func(self, *args, **kwargs) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 1730, in LoadModuleRestricted > description) > File "/Users/coto/gae-boilerplate/routes.py", line 8, in <module> > from web import handlers > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 719, in Decorate > return func(self, *args, **kwargs) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 1923, in load_module > return self.FindAndLoadModule(submodule, fullname, search_path) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 719, in Decorate > return func(self, *args, **kwargs) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 1787, in FindAndLoadModule > description) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 719, in Decorate > return func(self, *args, **kwargs) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 1730, in LoadModuleRestricted > description) > File "/Users/coto/gae-boilerplate/web/handlers.py", line 13, in <module> > from boilerplate.lib.basehandler import BaseHandler > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 719, in Decorate > return func(self, *args, **kwargs) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 1923, in load_module > return self.FindAndLoadModule(submodule, fullname, search_path) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 719, in Decorate > return func(self, *args, **kwargs) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 1787, in FindAndLoadModule > description) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 719, in Decorate > return func(self, *args, **kwargs) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 1730, in LoadModuleRestricted > description) > File "/Users/coto/gae-boilerplate/boilerplate/lib/basehandler.py", line > 14, in <module> > from boilerplate.lib import utils, i18n > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 719, in Decorate > return func(self, *args, **kwargs) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 1923, in load_module > return self.FindAndLoadModule(submodule, fullname, search_path) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 719, in Decorate > return func(self, *args, **kwargs) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 1787, in FindAndLoadModule > description) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 719, in Decorate > return func(self, *args, **kwargs) > File > "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", > > line 1730, in LoadModuleRestricted > description) > File "/Users/coto/gae-boilerplate/boilerplate/lib/utils.py", line 11, in > <module> > from Crypto.Cipher import AES > ImportError: No module named Crypto.Cipher > INFO 2012-10-02 10:07:42,467 dev_appserver.py:3056] "GET / HTTP/1.1" > 500 - > > > > > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/Kj4dEFmBAiwJ. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
