Thanks to visit codestin.com
Credit goes to github.com

Skip to content

discovery_cache module not packaged during installation. #128

Closed
@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