Skip to content

discovery_cache module not packaged during installation. #128

@sergey-ob

Description

@sergey-ob

I've installed google-api-python-client from source, but when at some point my application was failing with this message:

 ... ... File "build/bdist.linux-x86_64/egg/oauth2client/util.py", line 142, in positional_wrapper return wrapped(*args, **kwargs) File "build/bdist.linux-x86_64/egg/googleapiclient/discovery.py", line 193, in build content = _retrieve_discovery_doc(requested_url, http, cache_discovery, cache) File "build/bdist.linux-x86_64/egg/googleapiclient/discovery.py", line 215, in _retrieve_discovery_doc from . import discovery_cache ImportError: cannot import name discovery_cache 

I've checked if discovery_cache module was actually part of the egg, and unfortunately it was not:

[root@e42fb97ce657 unit]# python Python 2.7.5 (default, Jun 24 2015, 00:41:19) [GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import googleapiclient.discovery_cache Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named discovery_cache >>> 

Here are all the files in egg

[root@e42fb97ce657 ~]# unzip -l /usr/lib/python2.7/site-packages/google_api_python_client-1.4.1-py2.7.egg Archive: /usr/lib/python2.7/site-packages/google_api_python_client-1.4.1-py2.7.egg Length Date Time Name --------- ---------- ----- ---- 1169 09-03-2015 16:09 apiclient/__init__.py 1301 09-03-2015 16:09 apiclient/__init__.pyc 1 09-03-2015 16:09 EGG-INFO/dependency_links.txt 62 09-03-2015 16:09 EGG-INFO/requires.txt 26 09-03-2015 16:09 EGG-INFO/top_level.txt 969 09-03-2015 16:09 EGG-INFO/PKG-INFO 1 09-03-2015 16:09 EGG-INFO/zip-safe 545 09-03-2015 16:09 EGG-INFO/SOURCES.txt 53575 09-03-2015 16:09 googleapiclient/http.py 9910 09-03-2015 16:09 googleapiclient/channel.py 40890 09-03-2015 16:09 googleapiclient/discovery.py 9907 09-03-2015 16:09 googleapiclient/schema.pyc 620 09-03-2015 16:09 googleapiclient/__init__.py 9317 09-03-2015 16:09 googleapiclient/schema.py 11830 09-03-2015 16:09 googleapiclient/model.py 4047 09-03-2015 16:09 googleapiclient/sample_tools.py 6552 09-03-2015 16:09 googleapiclient/mimeparse.py 53976 09-03-2015 16:09 googleapiclient/http.pyc 7043 09-03-2015 16:09 googleapiclient/mimeparse.pyc 6333 09-03-2015 16:09 googleapiclient/errors.pyc 3131 09-03-2015 16:09 googleapiclient/sample_tools.pyc 3622 09-03-2015 16:09 googleapiclient/errors.py 35534 09-03-2015 16:09 googleapiclient/discovery.pyc 14028 09-03-2015 16:09 googleapiclient/model.pyc 175 09-03-2015 16:09 googleapiclient/__init__.pyc 10690 09-03-2015 16:09 googleapiclient/channel.pyc --------- ------- 285254 26 files [root@e42fb97ce657 ~]# 

As a workaround I had to add googleapiclient/discovery_cache to the packages in setup.py so it looked like that:

[root@e42fb97ce657 google-api-python-client]# more setup.py | grep packages -A 4 -m1 packages = [ 'apiclient', 'googleapiclient', 'googleapiclient/discovery_cache' ] 

Then installed and everything magically started working.

[root@e42fb97ce657 google-api-python-client]# python Python 2.7.5 (default, Jun 24 2015, 00:41:19) [GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import googleapiclient.discovery_cache >>> 

Here is a quick sample that looks similar to my environment using Docker:

FROM centos:centos7 RUN yum install -y git python-devel python-setuptools unzip RUN easy_install pip RUN cd /tmp ;\ git clone https://github.com/google/google-api-python-client && \ cd google-api-python-client && \ python setup.py install 

I've also tried to follow preferred suggestion from the README.md and install it from pip but it ended up in the same situation.

Please advice on how to proceed without making "manual" modifications to the official package?

Metadata

Metadata

Labels

🚨This issue needs some love.triage meI really want to be triaged.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions