0

gcloudv0.7.1を使用するスクリプトがあります。実行するとすぐに、次のエラーが表示されます。

...
  File "/home/vagrant/venvs/lib/python2.7/site-packages/gcloud/credentials.py", line 26, in <module>
    from oauth2client.client import _get_application_default_credential_from_file
ImportError: cannot import name _get_application_default_credential_from_file

私が知る限り、私oauth2clientpip install oauth2client==1.5.0. これは、私の Vagrant ボックス (CentOS 6.6、Python v 2.7.10、pip v7.1.2 を実行) でのみ発生します。Vagrantボックスの外にいるとき、このエラーは発生しません。

pip show oauth2client(Vagrant ボックス内から)次の結果が得られます。

Metadata-Version: 2.0
Name: oauth2client
Version: 1.5.0
Summary: OAuth 2.0 client library
Home-page: http://github.com/google/oauth2client/
Author: Google Inc.
Author-email: UNKNOWN
License: Apache 2.0
Location: /home/vagrant/venvs/lib/python2.7/site-packages
Requires: six, pyasn1-modules, rsa, pyasn1, httplib2

ただし、次のコマンドを使用して Python から確認すると、別のバージョン番号が返されます
python -c "import oauth2client; print oauth2client.__version__; print oauth2client.__file__"

1.2
/home/vagrant/venvs/lib/python2.7/site-packages/oauth2client/__init__.pyc

import sys; print sys.path収量:

['', '/home/vagrant/venvs/lib/python27.zip', '/home/vagrant/venvs/lib/python2.7', '/home/vagrant/venvs/lib/python2.7/plat-linux2', '/home/vagrant/venvs/lib/python2.7/lib-tk', '/home/vagrant/venvs/lib/python2.7/lib-old', '/home/vagrant/venvs/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7', '/usr/local/lib/python2.7/plat-linux2', '/usr/local/lib/python2.7/lib-tk', '/home/vagrant/venvs/lib/python2.7/site-packages']

v1.5.0 が使用されていることを確認するにはどうすればよいですか?

4

1 に答える 1

1

今夜、同様の問題に多くの時間を費やしたので、これが役立つことを願っています.google-api-python-clientライブラリは、別のパッケージに分割されるまで、ライブラリをバンドルしていました. oauth2clientgoogle-api-python-client<=1.2インストールしているoauth2client場合、ライブラリまたはPYTHONPATH.

Python ( 経由でインストールされたパッケージを含む) は、見つけたフォルダーが実際に同じ名前のパッケージによってインストールされるというpip保証を提供しません。site/dist-packages

于 2015-09-21T22:10:28.777 に答える