Skip to content

not compatible with Google Cloud Containers #348

@artooro

Description

@artooro

I'm using the google/python-runtime Docker image to run an app on Google Managed VMs, and need to access the datastore. The obvious solution seems to be gcloud-python as it's so much easier to use than the datastore python library.

So here's what happens. In my requirements.txt file I have:
httplib2
tornado
gcloud

PIP installs everything OK except it fails when installing cffi. Here is a log:

Processing cffi-0.8.6.tar.gz Writing /tmp/easy_install-MCEL5F/cryptography-0.6.1/temp/easy_install-ZPcCkB/cffi-0.8.6/setup.cfg Running cffi-0.8.6/setup.py -q bdist_egg --dist-dir /tmp/easy_install-MCEL5F/cryptography-0.6.1/temp/easy_install-ZPcCkB/cffi-0.8.6/egg-dist-tmp-fmCpCO compiling '_configtest.c': __thread int some_threadlocal_variable_42; gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o success! removing: _configtest.c _configtest.o c/_cffi_backend.c:13:17: fatal error: ffi.h: No such file or directory compilation terminated. Traceback (most recent call last): File "<string>", line 17, in <module> File "/env/build/gcloud/setup.py", line 49, in <module> 'Topic :: Internet', File "/usr/lib/python2.7/distutils/core.py", line 112, in setup _setup_distribution = dist = klass(attrs) File "/env/local/lib/python2.7/site-packages/setuptools/dist.py", line 260, in __init__ self.fetch_build_eggs(attrs.pop('setup_requires')) File "/env/local/lib/python2.7/site-packages/setuptools/dist.py", line 285, in fetch_build_eggs replace_conflicting=True File "/env/local/lib/python2.7/site-packages/pkg_resources.py", line 631, in resolve dist = best[req.key] = env.best_match(req, ws, installer) File "/env/local/lib/python2.7/site-packages/pkg_resources.py", line 871, in best_match return self.obtain(req, installer) File "/env/local/lib/python2.7/site-packages/pkg_resources.py", line 883, in obtain return installer(requirement) File "/env/local/lib/python2.7/site-packages/setuptools/dist.py", line 335, in fetch_build_egg return cmd.easy_install(req) File "/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 595, in easy_install return self.install_item(spec, dist.location, tmpdir, deps) File "/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 625, in install_item dists = self.install_eggs(spec, download, tmpdir) File "/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 822, in install_eggs return self.build_and_install(setup_script, setup_base) File "/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1028, in build_and_install self.run_setup(setup_script, setup_base, args) File "/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1013, in run_setup run_setup(setup_script, args) File "/env/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 50, in run_setup lambda: execfile( File "/env/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 100, in run return func() File "/env/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 52, in <lambda> {'__file__':setup_script, '__name__':'__main__'} File "setup.py", line 338, in <module> File "/usr/lib/python2.7/distutils/core.py", line 112, in setup _setup_distribution = dist = klass(attrs) File "/env/local/lib/python2.7/site-packages/setuptools/dist.py", line 260, in __init__ self.fetch_build_eggs(attrs.pop('setup_requires')) File "/env/local/lib/python2.7/site-packages/setuptools/dist.py", line 285, in fetch_build_eggs replace_conflicting=True File "/env/local/lib/python2.7/site-packages/pkg_resources.py", line 631, in resolve dist = best[req.key] = env.best_match(req, ws, installer) File "/env/local/lib/python2.7/site-packages/pkg_resources.py", line 871, in best_match return self.obtain(req, installer) File "/env/local/lib/python2.7/site-packages/pkg_resources.py", line 883, in obtain return installer(requirement) File "/env/local/lib/python2.7/site-packages/setuptools/dist.py", line 335, in fetch_build_egg return cmd.easy_install(req) File "/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 595, in easy_install return self.install_item(spec, dist.location, tmpdir, deps) File "/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 625, in install_item dists = self.install_eggs(spec, download, tmpdir) File "/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 822, in install_eggs return self.build_and_install(setup_script, setup_base) File "/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1028, in build_and_install self.run_setup(setup_script, setup_base, args) File "/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1016, in run_setup raise DistutilsError("Setup script exited with %s" % (v.args[0],)) distutils.errors.DistutilsError: Setup script exited with error: command 'gcc' failed with exit status 1 ---------------------------------------- Cleaning up... Command python setup.py egg_info failed with error code 1 in /env/build/gcloud Storing debug log for failure in /root/.pip/pip.log 

This is kind of a road block for me, is there anything that can be done to make it installable on google containers?

Metadata

Metadata

Assignees

Labels

🚨This issue needs some love.packagingtriage 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