branliu0 / heroku-buildpack-scipy

Custom Heroku buildpack for Python with NumPy and SciPy

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cannot compile on classic cedar stack

bizso09 opened this issue · comments

installing with
numpy==1.8.1
scipy==0.14.0

remote:            building 'numpy.random.mtrand' extension
remote:            compiling C sources
remote:            C compiler: gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC
remote:
remote:            compile options: '-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -Inumpy/core/include -Ibuild/src.linux-
rc/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -In
thon2.7 -Ibuild/src.linux-x86_64-2.7/numpy/core/src/private -Ibuild/src.linux-x86_64-2.7/numpy/core/src/private -Ibuild/src.linux-x86_64-2.7/nump
mpy/core/src/private -c'
remote:            gcc: numpy/random/mtrand/distributions.c
remote:            gcc: numpy/random/mtrand/mtrand.c
remote:            gcc: numpy/random/mtrand/initarray.c
remote:            build/src.linux-x86_64-2.7/numpy/core/include/numpy/__multiarray_api.h:1629: warning: ‘_import_array’ defined but not used
remote:            gcc: numpy/random/mtrand/randomkit.c
remote:            gcc -pthread -shared build/temp.linux-x86_64-2.7/numpy/random/mtrand/mtrand.o build/temp.linux-x86_64-2.7/numpy/random/mtrand/
om/mtrand/initarray.o build/temp.linux-x86_64-2.7/numpy/random/mtrand/distributions.o -Lbuild/temp.linux-x86_64-2.7 -o build/lib.linux-x86_64-2.7
remote:            Creating build/scripts.linux-x86_64-2.7/f2py
remote:              adding 'build/scripts.linux-x86_64-2.7/f2py' to scripts
remote:            changing mode of build/scripts.linux-x86_64-2.7/f2py from 600 to 755
remote:
remote:            warning: no files found matching 'tools/py3tool.py'
remote:            warning: no files found matching '*' under directory 'doc/f2py'
remote:            changing mode of /app/.heroku/python/bin/f2py to 755
remote:          Running setup.py install for scipy
remote:            blas_opt_info:
remote:            blas_mkl_info:
remote:              libraries mkl,vml,guide not found in ['/app/.heroku/python/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib']
remote:              NOT AVAILABLE
remote:
remote:            openblas_info:
remote:              libraries  not found in ['/app/.heroku/python/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib']
remote:              NOT AVAILABLE
remote:
remote:            atlas_blas_threads_info:
remote:            Setting PTATLAS=ATLAS
remote:              libraries ptf77blas,ptcblas,atlas not found in ['/app/.heroku/python/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib']
remote:              NOT AVAILABLE
remote:
remote:            atlas_blas_info:
remote:              libraries f77blas,cblas,atlas not found in ['/app/.heroku/python/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib']
remote:              NOT AVAILABLE
remote:
remote:            /app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/system_info.py:1521: UserWarning:
remote:                Atlas (http://math-atlas.sourceforge.net/) libraries not found.
remote:                Directories to search for the libraries can be specified in the
remote:                numpy/distutils/site.cfg file (section [atlas]) or by setting
remote:                the ATLAS environment variable.
remote:              warnings.warn(AtlasNotFoundError.__doc__)
remote:            blas_info:
remote:              libraries blas not found in ['/app/.heroku/python/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib']
remote:              NOT AVAILABLE
remote:
remote:            /app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/system_info.py:1530: UserWarning:
remote:                Blas (http://www.netlib.org/blas/) libraries not found.
remote:                Directories to search for the libraries can be specified in the
remote:                numpy/distutils/site.cfg file (section [blas]) or by setting
remote:                the BLAS environment variable.
remote:              warnings.warn(BlasNotFoundError.__doc__)
remote:            blas_src_info:
remote:              NOT AVAILABLE
remote:
remote:            /app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/system_info.py:1533: UserWarning:
remote:                Blas (http://www.netlib.org/blas/) sources not found.
remote:                Directories to search for the sources can be specified in the
remote:                numpy/distutils/site.cfg file (section [blas_src]) or by setting
remote:                the BLAS_SRC environment variable.
remote:              warnings.warn(BlasSrcNotFoundError.__doc__)
remote:            Traceback (most recent call last):
remote:              File "", line 1, in 
remote:              File "/tmp/pip_build_u8769/scipy/setup.py", line 237, in 
remote:                setup_package()
remote:              File "/tmp/pip_build_u8769/scipy/setup.py", line 234, in setup_package
remote:                setup(**metadata)
remote:              File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/core.py", line 135, in setup
remote:                config = configuration()
remote:              File "/tmp/pip_build_u8769/scipy/setup.py", line 173, in configuration
remote:                config.add_subpackage('scipy')
remote:              File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 966, in add_subpackage
remote:                caller_level = 2)
remote:              File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 935, in get_subpackage
remote:                caller_level = caller_level + 1)
remote:              File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 872, in _get_configuration_from_se
remote:                config = setup_module.configuration(*args)
remote:              File "scipy/setup.py", line 12, in configuration
remote:                config.add_subpackage('integrate')
remote:              File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 966, in add_subpackage
remote:                caller_level = 2)
remote:              File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 935, in get_subpackage
remote:                caller_level = caller_level + 1)
remote:              File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 872, in _get_configuration_from_se
remote:                config = setup_module.configuration(*args)
remote:              File "scipy/integrate/setup.py", line 12, in configuration
remote:                blas_opt = get_info('blas_opt',notfound_action=2)
remote:              File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/system_info.py", line 350, in get_info
remote:                return cl().get_info(notfound_action)
remote:              File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/system_info.py", line 509, in get_info
remote:                raise self.notfounderror(self.notfounderror.__doc__)
remote:            numpy.distutils.system_info.BlasNotFoundError:
remote:                Blas (http://www.netlib.org/blas/) libraries not found.
remote:                Directories to search for the libraries can be specified in the
remote:                numpy/distutils/site.cfg file (section [blas]) or by setting
remote:                the BLAS environment variable.
remote:            Complete output from command /app/.heroku/python/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_u8769/sci
, open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-0GYDl_-record/install-record.txt --single-version-e
remote:            blas_opt_info:
remote:
remote:        blas_mkl_info:
remote:
remote:          libraries mkl,vml,guide not found in ['/app/.heroku/python/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib']
remote:
remote:          NOT AVAILABLE
remote:
remote:
remote:
remote:        openblas_info:
remote:
remote:          libraries  not found in ['/app/.heroku/python/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib']
remote:
remote:          NOT AVAILABLE
remote:
remote:
remote:
remote:        atlas_blas_threads_info:
remote:
remote:        Setting PTATLAS=ATLAS
remote:
remote:          libraries ptf77blas,ptcblas,atlas not found in ['/app/.heroku/python/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib']
remote:
remote:          NOT AVAILABLE
remote:
remote:
remote:
remote:        atlas_blas_info:
remote:
remote:          libraries f77blas,cblas,atlas not found in ['/app/.heroku/python/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib']
remote:
remote:          NOT AVAILABLE
remote:
remote:
remote:
remote:        /app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/system_info.py:1521: UserWarning:
remote:
remote:            Atlas (http://math-atlas.sourceforge.net/) libraries not found.
remote:
remote:            Directories to search for the libraries can be specified in the
remote:
remote:            numpy/distutils/site.cfg file (section [atlas]) or by setting
remote:
remote:            the ATLAS environment variable.
remote:
remote:          warnings.warn(AtlasNotFoundError.__doc__)
remote:
remote:        blas_info:
remote:
remote:          libraries blas not found in ['/app/.heroku/python/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib']
remote:
remote:          NOT AVAILABLE
remote:
remote:
remote:
remote:        /app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/system_info.py:1530: UserWarning:
remote:
remote:            Blas (http://www.netlib.org/blas/) libraries not found.
remote:
remote:            Directories to search for the libraries can be specified in the
remote:
remote:            numpy/distutils/site.cfg file (section [blas]) or by setting
remote:
remote:            the BLAS environment variable.
remote:
remote:          warnings.warn(BlasNotFoundError.__doc__)
remote:
remote:        blas_src_info:
remote:
remote:          NOT AVAILABLE
remote:
remote:
remote:
remote:        /app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/system_info.py:1533: UserWarning:
remote:
remote:            Blas (http://www.netlib.org/blas/) sources not found.
remote:
remote:            Directories to search for the sources can be specified in the
remote:
remote:            numpy/distutils/site.cfg file (section [blas_src]) or by setting
remote:
remote:            the BLAS_SRC environment variable.
remote:
remote:          warnings.warn(BlasSrcNotFoundError.__doc__)
remote:
remote:        Traceback (most recent call last):
remote:
remote:          File "", line 1, in 
remote:
remote:          File "/tmp/pip_build_u8769/scipy/setup.py", line 237, in 
remote:
remote:            setup_package()
remote:
remote:          File "/tmp/pip_build_u8769/scipy/setup.py", line 234, in setup_package
remote:
remote:            setup(**metadata)
remote:
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/core.py", line 135, in setup
remote:
remote:            config = configuration()
remote:
remote:          File "/tmp/pip_build_u8769/scipy/setup.py", line 173, in configuration
remote:
remote:            config.add_subpackage('scipy')
remote:
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 966, in add_subpackage
remote:
remote:            caller_level = 2)
remote:
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 935, in get_subpackage
remote:
remote:            caller_level = caller_level + 1)
remote:
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 872, in _get_configuration_from_setup_
remote:
remote:            config = setup_module.configuration(*args)
remote:
remote:          File "scipy/setup.py", line 12, in configuration
remote:
remote:            config.add_subpackage('integrate')
remote:
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 966, in add_subpackage
remote:
remote:            caller_level = 2)
remote:
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 935, in get_subpackage
remote:
remote:            caller_level = caller_level + 1)
remote:
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 872, in _get_configuration_from_setup_
remote:
remote:            config = setup_module.configuration(*args)
remote:
remote:          File "scipy/integrate/setup.py", line 12, in configuration
remote:
remote:            blas_opt = get_info('blas_opt',notfound_action=2)
remote:
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/system_info.py", line 350, in get_info
remote:
remote:            return cl().get_info(notfound_action)
remote:
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/numpy/distutils/system_info.py", line 509, in get_info
remote:
remote:            raise self.notfounderror(self.notfounderror.__doc__)
remote:
remote:        numpy.distutils.system_info.BlasNotFoundError:
remote:
remote:            Blas (http://www.netlib.org/blas/) libraries not found.
remote:
remote:            Directories to search for the libraries can be specified in the
remote:
remote:            numpy/distutils/site.cfg file (section [blas]) or by setting
remote:
remote:            the BLAS environment variable.
remote:
remote:        ----------------------------------------
remote:        Cleaning up...
remote:        Command /app/.heroku/python/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_u8769/scipy/setup.py';exec(compile
replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-0GYDl_-record/install-record.txt --single-version-externally-managed --compi
9/scipy
remote: Traceback (most recent call last):
remote:   File "/app/.heroku/python/bin/pip", line 9, in 
remote:     load_entry_point('pip==1.5.6', 'console_scripts', 'pip')()
remote:   File "/app/.heroku/python/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg/pip/__init__.py", line 185, in main
remote:     return command.main(cmd_args)
remote:   File "/app/.heroku/python/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg/pip/basecommand.py", line 161, in main
remote:     text = '\n'.join(complete_log)
remote: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 70: ordinal not in range(128)
remote:
remote:  !     Push rejected, failed to compile Multipack app
remote:

It looks like you're using a Multipack app? It seems that this buildpack may not work well in a multipack; I haven't tried it yet.

Basically, if Heroku is trying to compile numpy/scipy itself, then something is wrong. There should be no compilation involved, as this buildpack basically downloads pre-compiled files and just unpacks them.

Here's what I see when I run the buildpack:

Fetching repository, done.
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 344 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)

-----> Fetching custom git buildpack... done
-----> Python app detected
-----> Detected numpy/scipy in requirements.txt.
-----> Using cached binaries.
-----> Removing old installation of numpy (1.9.1).
-----> Downloading prebuilt numpy (1.8.1)
-----> Installing numpy (1.8.1)
-----> Downloading prebuilt scipy (0.14.0)
-----> Installing scipy (0.14.0)
-----> Installing dependencies with pip

-----> Discovering process types
       Procfile declares types -> (none)

-----> Compressing... done, 71.5MB
-----> Launching... done, v85
       https://heroku-scipy-test.herokuapp.com/ deployed to Heroku

To git@heroku.com:heroku-scipy-test.git
   3f76dbb..1f2c5d2  master -> master

@bizso09, Heroku is discontinuing availability of the cedar-10 stack in just a couple months. I was able to deploy with cedar-14 with the buildpack (despite warnings that it might not work), I'd advise giving that a try.

I'm going to close this issue for now.