2016-08-15 604 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

相關問題