1

I am trying to deploy a flask based application on Heroku.
I connected my GitHub repository to the Heroku Platform and from the repository I am trying to push it to the deployment.
It goes fine until installing build dependencies. After that, I got some errors.

-----> Building on the Heroku-20 stack
-----> Determining which buildpack to use for this app
-----> Python app detected
-----> No Python version was specified. Using the buildpack default: python-3.9.6
       To use a different version, see: https://devcenter.heroku.com/articles/python-runtimes
-----> Installing python-3.9.6
-----> Installing pip 20.2.4, setuptools 47.1.1 and wheel 0.36.2
-----> Installing SQLite3
-----> Installing requirements with pip
       Collecting click==8.0.1
         Downloading click-8.0.1-py3-none-any.whl (97 kB)
       Collecting colorama==0.4.4
         Downloading colorama-0.4.4-py2.py3-none-any.whl (16 kB)
       Collecting Cython==0.29.23
         Downloading Cython-0.29.23-cp39-cp39-manylinux1_x86_64.whl (1.9 MB)
       Collecting Flask==2.0.1
         Downloading Flask-2.0.1-py3-none-any.whl (94 kB)
       Collecting Flask-Cors==3.0.10
         Downloading Flask_Cors-3.0.10-py2.py3-none-any.whl (14 kB)
       Collecting importlib-metadata==4.6.1
         Downloading importlib_metadata-4.6.1-py3-none-any.whl (17 kB)
       Collecting itsdangerous==2.0.1
         Downloading itsdangerous-2.0.1-py3-none-any.whl (18 kB)
       Collecting Jinja2==3.0.1
         Downloading Jinja2-3.0.1-py3-none-any.whl (133 kB)
       Collecting joblib==1.0.1
         Downloading joblib-1.0.1-py3-none-any.whl (303 kB)
       Collecting MarkupSafe==2.0.1
         Downloading MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl (30 kB)
       Collecting numpy==1.19.5
         Downloading numpy-1.19.5-cp39-cp39-manylinux2010_x86_64.whl (14.9 MB)
       Collecting pandas==1.3.1
         Downloading pandas-1.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.7 MB)
       Collecting python-dateutil==2.8.2
         Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
       Collecting pytz==2021.1
         Downloading pytz-2021.1-py2.py3-none-any.whl (510 kB)
       Collecting scikit-learn==0.22.2.post1
         Downloading scikit-learn-0.22.2.post1.tar.gz (6.9 MB)
       Collecting scipy==1.4.1
         Downloading scipy-1.4.1.tar.gz (24.6 MB)
         Installing build dependencies: started
         Installing build dependencies: still running...
         Installing build dependencies: still running...
         Installing build dependencies: still running...
         Installing build dependencies: still running...
         Installing build dependencies: finished with status 'done'
         Getting requirements to build wheel: started
         Getting requirements to build wheel: finished with status 'done'
           Preparing wheel metadata: started
           Preparing wheel metadata: finished with status 'error'
           ERROR: Command errored out with exit status 1:
            command: /app/.heroku/python/bin/python /app/.heroku/python/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /tmp/tmpzehqvl85
                cwd: /tmp/pip-install-u8xhvmc8/scipy
           Complete output (171 lines):
           setup.py:418: UserWarning: Unrecognized setuptools command ('dist_info --egg-base /tmp/pip-modern-metadata-5w54x3w9'), proceeding with generating Cython sources and expanding templates
             warnings.warn("Unrecognized setuptools command ('{}'), proceeding with "
           Running from scipy source directory.
           lapack_opt_info:
           lapack_mkl_info:
           customize UnixCCompiler
             libraries mkl_rt not found in ['/app/.heroku/python/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
             NOT AVAILABLE
           
           openblas_lapack_info:
           customize UnixCCompiler
           customize UnixCCompiler
             libraries openblas not found in ['/app/.heroku/python/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
             NOT AVAILABLE
           
           openblas_clapack_info:
           customize UnixCCompiler
           customize UnixCCompiler
             libraries openblas,lapack not found in ['/app/.heroku/python/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
             NOT AVAILABLE
           
           flame_info:
           customize UnixCCompiler
             libraries flame not found in ['/app/.heroku/python/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
             NOT AVAILABLE
           
           atlas_3_10_threads_info:
           Setting PTATLAS=ATLAS
           customize UnixCCompiler
             libraries lapack_atlas not found in /app/.heroku/python/lib
           customize UnixCCompiler
             libraries tatlas,tatlas not found in /app/.heroku/python/lib
           customize UnixCCompiler
             libraries lapack_atlas not found in /usr/local/lib
           customize UnixCCompiler
             libraries tatlas,tatlas not found in /usr/local/lib
           customize UnixCCompiler
             libraries lapack_atlas not found in /usr/lib64
           customize UnixCCompiler
             libraries tatlas,tatlas not found in /usr/lib64
           customize UnixCCompiler
             libraries lapack_atlas not found in /usr/lib
           customize UnixCCompiler
             libraries tatlas,tatlas not found in /usr/lib
           customize UnixCCompiler
             libraries lapack_atlas not found in /usr/lib/x86_64-linux-gnu
           customize UnixCCompiler
             libraries tatlas,tatlas not found in /usr/lib/x86_64-linux-gnu
           <class 'numpy.distutils.system_info.atlas_3_10_threads_info'>
             NOT AVAILABLE
           
           atlas_3_10_info:
           customize UnixCCompiler
             libraries lapack_atlas not found in /app/.heroku/python/lib
           customize UnixCCompiler
             libraries satlas,satlas not found in /app/.heroku/python/lib
           customize UnixCCompiler
             libraries lapack_atlas not found in /usr/local/lib
           customize UnixCCompiler
             libraries satlas,satlas not found in /usr/local/lib
           customize UnixCCompiler
             libraries lapack_atlas not found in /usr/lib64
           customize UnixCCompiler
             libraries satlas,satlas not found in /usr/lib64
           customize UnixCCompiler
             libraries lapack_atlas not found in /usr/lib
           customize UnixCCompiler
             libraries satlas,satlas not found in /usr/lib
           customize UnixCCompiler
             libraries lapack_atlas not found in /usr/lib/x86_64-linux-gnu
           customize UnixCCompiler
             libraries satlas,satlas not found in /usr/lib/x86_64-linux-gnu
           <class 'numpy.distutils.system_info.atlas_3_10_info'>
             NOT AVAILABLE
           
           atlas_threads_info:
           Setting PTATLAS=ATLAS
           customize UnixCCompiler
             libraries lapack_atlas not found in /app/.heroku/python/lib
           customize UnixCCompiler
             libraries ptf77blas,ptcblas,atlas not found in /app/.heroku/python/lib
           customize UnixCCompiler
             libraries lapack_atlas not found in /usr/local/lib
           customize UnixCCompiler
             libraries ptf77blas,ptcblas,atlas not found in /usr/local/lib
           customize UnixCCompiler
             libraries lapack_atlas not found in /usr/lib64
           customize UnixCCompiler
             libraries ptf77blas,ptcblas,atlas not found in /usr/lib64
           customize UnixCCompiler
             libraries lapack_atlas not found in /usr/lib
           customize UnixCCompiler
             libraries ptf77blas,ptcblas,atlas not found in /usr/lib
           customize UnixCCompiler
             libraries lapack_atlas not found in /usr/lib/x86_64-linux-gnu
           customize UnixCCompiler
             libraries ptf77blas,ptcblas,atlas not found in /usr/lib/x86_64-linux-gnu
           <class 'numpy.distutils.system_info.atlas_threads_info'>
             NOT AVAILABLE
           
           atlas_info:
           customize UnixCCompiler
             libraries lapack_atlas not found in /app/.heroku/python/lib
           customize UnixCCompiler
             libraries f77blas,cblas,atlas not found in /app/.heroku/python/lib
           customize UnixCCompiler
             libraries lapack_atlas not found in /usr/local/lib
           customize UnixCCompiler
             libraries f77blas,cblas,atlas not found in /usr/local/lib
           customize UnixCCompiler
             libraries lapack_atlas not found in /usr/lib64
           customize UnixCCompiler
             libraries f77blas,cblas,atlas not found in /usr/lib64
           customize UnixCCompiler
             libraries lapack_atlas not found in /usr/lib
           customize UnixCCompiler
             libraries f77blas,cblas,atlas not found in /usr/lib
           customize UnixCCompiler
             libraries lapack_atlas not found in /usr/lib/x86_64-linux-gnu
           customize UnixCCompiler
             libraries f77blas,cblas,atlas not found in /usr/lib/x86_64-linux-gnu
           <class 'numpy.distutils.system_info.atlas_info'>
             NOT AVAILABLE
           
           accelerate_info:
             NOT AVAILABLE
           
           lapack_info:
           customize UnixCCompiler
             libraries lapack not found in ['/app/.heroku/python/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
             NOT AVAILABLE
           
           /tmp/pip-build-env-jxsfl6_h/overlay/lib/python3.9/site-packages/numpy/distutils/system_info.py:1712: UserWarning:
               Lapack (http://www.netlib.org/lapack/) libraries not found.
               Directories to search for the libraries can be specified in the
               numpy/distutils/site.cfg file (section [lapack]) or by setting
               the LAPACK environment variable.
             if getattr(self, '_calc_info_{}'.format(lapack))():
           lapack_src_info:
             NOT AVAILABLE
           
           /tmp/pip-build-env-jxsfl6_h/overlay/lib/python3.9/site-packages/numpy/distutils/system_info.py:1712: UserWarning:
               Lapack (http://www.netlib.org/lapack/) sources not found.
               Directories to search for the sources can be specified in the
               numpy/distutils/site.cfg file (section [lapack_src]) or by setting
               the LAPACK_SRC environment variable.
             if getattr(self, '_calc_info_{}'.format(lapack))():
             NOT AVAILABLE
           
           Traceback (most recent call last):
             File "/app/.heroku/python/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 280, in <module>
               main()
             File "/app/.heroku/python/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 263, in main
               json_out['return_val'] = hook(**hook_input['kwargs'])
             File "/app/.heroku/python/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 133, in prepare_metadata_for_build_wheel
               return hook(metadata_directory, config_settings)
             File "/tmp/pip-build-env-jxsfl6_h/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 166, in prepare_metadata_for_build_wheel
               self.run_setup()
             File "/tmp/pip-build-env-jxsfl6_h/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 258, in run_setup
               super(_BuildMetaLegacyBackend,
             File "/tmp/pip-build-env-jxsfl6_h/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 150, in run_setup
               exec(compile(code, __file__, 'exec'), locals())
             File "setup.py", line 540, in <module>
               setup_package()
             File "setup.py", line 536, in setup_package
               setup(**metadata)
             File "/tmp/pip-build-env-jxsfl6_h/overlay/lib/python3.9/site-packages/numpy/distutils/core.py", line 137, in setup
               config = configuration()
             File "setup.py", line 435, in configuration
               raise NotFoundError(msg)
           numpy.distutils.system_info.NotFoundError: No lapack/blas resources found.
           ----------------------------------------
       ERROR: Command errored out with exit status 1: /app/.heroku/python/bin/python /app/.heroku/python/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /tmp/tmpzehqvl85 Check the logs for full command output.
 !     Push rejected, failed to compile Python app.
 !     Push failed

Here's what the requirements for the app

click==8.0.1
colorama==0.4.4
Cython==0.29.23
Flask==2.0.1
Flask-Cors==3.0.10
importlib-metadata==4.6.1
itsdangerous==2.0.1
Jinja2==3.0.1
joblib==1.0.1
MarkupSafe==2.0.1
numpy==1.19.5
pandas==1.3.1
python-dateutil==2.8.2
pytz==2021.1
scikit-learn==0.22.2.post1
scipy==1.4.1
six==1.16.0
threadpoolctl==2.2.0
typing-extensions==3.10.0.0
Werkzeug==2.0.1
zipp==3.5.0

These are requirements of the flask web application. It works finely on my local server. But when i try to deploy in the heroku platform, it ended up with these errors.

Help me out with these errors and I wanted to deploy in the Heroku

1 Answers1

1

I had the exact same error. Removing the version of the scipy specified in my requirements.txt helped in my case. I hit errors with other packages each of which I resolved by removing the version number.

Reference : Heroku Upload - Could not find a version that satisfies the requirement anaconda-client==1.4.0

Sneha Valabailu
  • 115
  • 2
  • 5