I've got a script that uses gcloud v0.7.1. As soon as I run it, I get the following error:
...
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
As far as I can tell, an older version (v1.2) of oauth2client is being used, even though I did a pip install oauth2client==1.5.0. This only happens on my Vagrant box (running CentOS 6.6, Python v 2.7.10, pip v7.1.2). When I'm outside of the Vagrant box I don't get this error.
pip show oauth2client (from within the Vagrant box) yields:
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
However, I get back a different version number when I check it from Python using this command:
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 yields:
['', '/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']
How can I make sure that v1.5.0 is used?
I spent a bunch of time on a similar problem tonight, so hope this helps: the
google-api-python-clientlibrary used to bundle theoauth2clientlibrary until it was split out in a separate package. If you havegoogle-api-python-client<=1.2installed, it may interfere with your installation ofoauth2client, depending on the order in which you installed the libraries or yourPYTHONPATH.Python (with packages installed via
pip) doesn't offer any guarantee that the folder you find insite/dist-packagesis actually installed by the package of the same name.