2016-08-15 38 views
2

我试图在使用云数据存储的谷歌应用程序引擎上运行基于python烧瓶的应用程序。我正在关注的书架例子 - https://cloud.google.com/python/getting-started/using-cloud-datastoreImportError:应用程序引擎中没有名为pwd的模块

一切似乎都在本地机器,但在App Engine上,我越来越 ImportError: No module named pwd,正在由oauth2client库中导入工作。

有什么我失踪了。任何帮助将不胜感激。

引用为重复的问题有所不同。那里的应用程序似乎只在本地出现故障,而对于我来说,一切都在本地工作,但无法在GAE中工作。

这里的堆栈跟踪(部分) -

... 
1384/v1.394932573930853146/application/home/model.py", line 16, in save_user 
    ds = get_client() 
    File "/base/data/home/apps/s~bookshelf-1384/v1.394932573930853146/application/home/model.py", line 7, in get_client 
    return datastore.Client('bookshelf-1384')#current_app.config['PROJECT_ID']) 
    File "/base/data/home/apps/s~bookshelf-1384/v1.394932573930853146/lib/gcloud/datastore/client.py", line 173, in __init__ 
    super(Client, self).__init__(credentials, http) 
    File "/base/data/home/apps/s~bookshelf-1384/v1.394932573930853146/lib/gcloud/client.py", line 122, in __init__ 
    credentials = get_credentials() 
    File "/base/data/home/apps/s~bookshelf-1384/v1.394932573930853146/lib/gcloud/credentials.py", line 82, in get_credentials 
    return client.GoogleCredentials.get_application_default() 
    File "/base/data/home/apps/s~bookshelf-1384/v1.394932573930853146/lib/oauth2client/client.py", line 1288, in get_application_default 
    return GoogleCredentials._get_implicit_credentials() 
    File "/base/data/home/apps/s~bookshelf-1384/v1.394932573930853146/lib/oauth2client/client.py", line 1273, in _get_implicit_credentials 
    credentials = checker() 
    File "/base/data/home/apps/s~bookshelf-1384/v1.394932573930853146/lib/oauth2client/client.py", line 1226, in _implicit_credentials_from_files 
    credentials_filename = _get_well_known_file() 
    File "/base/data/home/apps/s~bookshelf-1384/v1.394932573930853146/lib/oauth2client/client.py", line 1392, in _get_well_known_file 
    default_config_dir = os.path.join(os.path.expanduser('~'), 
    File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/posixpath.py", line 268, in expanduser 
    import pwd 
ImportError: No module named pwd 
+0

你的app.yaml文件是什么? – hjpotter92

+0

运行时:python27 api_version:1 线程安全:是 #处理程序定义如何将请求路由到您的应用程序。 处理程序: - 网址:*#此正则表达式将所有路线main.app 脚本:main.app ' – user1010373

+0

这个问题不应该被重复的标记...... 错误是由引起HTTPS://。 github.com/google/oauth2client/issues/578 它将在几周内通过新的AppEngine SDK得到修复。与此同时,您可以降级app.yaml中auth2client库的版本。 – Max

回答

1

该错误是由http://github.com/google/oauth2client/issues/578引起的。

它将在几周内通过新的AppEngine SDK进行修复。与此同时,您可以降级app.yaml文件中的oauth2client库的版本。

+1

我可以从https://pypi.python.org/pypi/oauth2client看到最新版本为3.0.0,所以我加了' - name:oauth2client \ n version:2.0 '在'库下:'在我的app.yaml中,它仍然不起作用。我究竟做错了什么? –

-1

我有这个问题,这是SDK的一个已知问题。我尝试了SO上提出的其他解决方案(请参阅Google App Engine 'No module named pwd'),但没有奏效。我通过安装旧版本的oauth2client-2.0.0来覆盖pubsub pip安装随附的oauth2client-4.0.0来找到解决办法。尝试在项目目录中运行 pip install -t ./lib/ --upgrade --force-reinstall oauth2client==2.0.0 并重新运行。

+0

这不适合我们。我们仍然收到pwd丢失的错误 – Praxiteles

相关问题