python buildpack - fatal error: sasl/sasl.h: No such file or directory

buildpack, cloud-foundry, ibm-cloud, python

Solution

The solution for me was to use pure-sasl and install imypla and thrift_sasl from application code rather than my requirements.txt:

try:
    import impyla 
except ImportError:
    print("Installing missing impyla")
    import pip
    pip.main(['install', '--no-deps', 'impyla'])

try:
    import thrift_sasl
except ImportError:
    print("Installing missing thrift_sasl")
    import pip
    # need a patched version of thrift_sasl.  see https://github.com/cloudera/impyla/issues/238
    pip.main(['install', '--no-deps',  'git+https://github.com/snowch/thrift_sasl'])

I added this code to a view in my flask application: https://github.com/snowch/movie-recommender-demo/blob/master/web_app/app/main/views.py

Problem

I get the following error installing sasl in my Bluemix app: ``` Installing collected packages: sasl, thrift-sasl Running setup.py install for sasl: started Running setup.py install for sasl: finished with status 'error' Command "/app/.heroku/python/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-9mi8225r/sasl/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-3l4o04ga-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-9mi8225r/sasl/ running install running build_py creating build creating build/lib.linux-x86_64-3.5 creating build/lib.linux-x86_64-3.5/sasl copying sasl/__init__.py -> build/lib.linux-x86_64-3.5/sasl running egg_info writing dependency_links to sasl.egg-info/dependency_links.txt writing top-level names to sasl.egg-info/top_level.txt warning: manifest_maker: standard file '-c' not found reading manifest file 'sasl.egg-info/SOURCES.txt' writing manifest file 'sasl.egg-info/SOURCES.txt' copying sasl/saslwrapper.cpp -> build/lib.linux-x86_64-3.5/sasl copying sasl/saslwrapper.pyx -> build/lib.linux-x86_64-3.5/sasl building 'sasl.saslwrapper' extension creating build/temp.linux-x86_64-3.5 creating build/temp.linux-x86_64-3.5/sasl gcc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Isasl -I/app/.heroku/python/include/python3.5m -c sasl/saslwrapper.cpp -o build/temp.linux-x86_64-3.5/sasl/saslwrapper.o sasl/saslwrapper.h:22:23: fatal error: sasl/sasl.h: No such file or directory #include <sasl/sasl.h> ^ compilation terminated. ``` I'm using the buildpack: `python 1.5.5` My runtime.txt contains: `python-3.5.0` How can I install the necessary headers in the buildpack? Update: It looks as though the latest cloud foundry stack has the sasl library: https://github.com/cloudfoundry/cflinuxfs2/blob/1.119.0/cflinuxfs2/build/install-packages.sh#L98. How can I use this stack on Bluemix?

Original source

Related problems