“ImportError:没有名为pwd的模块”,但它存在
我试图在本地测试gae-boilerplate,但是当我尝试创建新帐户时,出现以下错误。
奇怪的是,如果我打开python解释器并键入“导入密码”它的作品。
Internal Server Error
The server has either erred or is incapable of performing the requested operation.
Traceback (most recent call last): File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 1535, in __call__
rv = self.handle_exception(request, response, e) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 1529, in __call__
rv = self.router.dispatch(request, response) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 1278, in default_dispatcher
return route.handler_adapter(request, response) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 1102, in __call__
return handler.dispatch() File "/Users/moisesguimaraes/workspaces/python/mtgtradelist/boilerplate/lib/basehandler.py", line 88, in dispatch
webapp2.RequestHandler.dispatch(self) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 572, in dispatch
return self.handle_exception(e, self.app.debug) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 570, in dispatch
return method(*args, **kwargs) File "/Users/moisesguimaraes/workspaces/python/mtgtradelist/boilerplate/handlers.py", line 766, in post
password = utils.hashing(password, self.app.config.get('salt')) File "/Users/moisesguimaraes/workspaces/python/mtgtradelist/boilerplate/lib/utils.py", line 38, in hashing
from Crypto.Cipher import AES File "/Library/Python/2.7/site-packages/pycrypto-2.6-py2.7-macosx-10.8-intel.egg/Crypto/Cipher/AES.py", line 50, in <module> File "/Library/Python/2.7/site-packages/pycrypto-2.6-py2.7-macosx-10.8-intel.egg/Crypto/Cipher/_AES.py", line 7, in <module> File "/Library/Python/2.7/site-packages/pycrypto-2.6-py2.7-macosx-10.8-intel.egg/Crypto/Cipher/_AES.py", line 4, in __bootstrap__ File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/setuptools-0.6c11/pkg_resources.py", line 882, in resource_filename
self, resource_name File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/setuptools-0.6c11/pkg_resources.py", line 1351, in get_resource_filename
self._extract_resource(manager, self._eager_to_zip(name)) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/setuptools-0.6c11/pkg_resources.py", line 1373, in _extract_resource
self.egg_name, self._parts(zip_path) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/setuptools-0.6c11/pkg_resources.py", line 957, in get_cache_path
extract_path = self.extraction_path or get_default_cache() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/setuptools-0.6c11/pkg_resources.py", line 1080, in get_default_cache
return os.path.expanduser('~/.python-eggs') File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/posixpath.py", line 259, in expanduser
import pwd File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/python/sandbox.py", line 835, in load_module
raise ImportError('No module named %s' % fullname) ImportError: No module named pwd
我相信这个问题是由AppEngine SDK更新引入的。 我目前正在使用1.8.6版本。 gae-boilerplate自述文件指出它已经“使用SDK 1.8.1测试”
我能够通过运行old_dev_appserver.py <application root>
来本地运行它。old_dev_appserver.py由SDK提供,并位于与dev_appserver.py相同的目录中。
基于我得到的回溯,它看起来像文件boilerplate / external / requests / utils.py导入了导入pwd的netrc。 较新版本的SDK不允许您在其沙箱模式下导入pwd模块。
你可能用easy_install
安装了pycrypto。 如果你用pip
重新安装它,一切都应该工作:
pip uninstall pycrypto
pip install pycrypto
请注意, pip uninstall
即使与easy_install
一起安装,也可以运行。 你也可能需要使用sudo
。
如果您没有pip
,请像这样安装它:
sudo easy_install pip
链接地址: http://www.djcxy.com/p/74291.html