Search code examples
pythonherokuscipycondabuildpack

Heroku conda-buildpack bulilds with extra mkl package


I was trying to deploy a new version of my app to Heroku with conda-buildpack for numpy and scipy. However, an extra mkl-11.3.1 was downloaded and installed which is 121.2 MB.

   Fetching package metadata: ....
   Solving package specifications: ..................
   Package plan for installation in environment /app/.heroku/miniconda:

   The following packages will be downloaded:

       package                    |            build
       ---------------------------|-----------------
       mkl-11.3.1                 |                0       121.2 MB
       numpy-1.10.4               |           py27_0         6.0 MB
       scipy-0.17.0               |      np110py27_1        29.6 MB
       ------------------------------------------------------------
                                              Total:       156.8 MB

   The following NEW packages will be INSTALLED:

       mkl:   11.3.1-0          

   The following packages will be UPDATED:

       numpy: 1.10.2-py27_0      --> 1.10.4-py27_0     
       scipy: 0.16.1-np110py27_0 --> 0.17.0-np110py27_1

Anyway, nothing was changed in my conda-requirements.txt file which is

   numpy
   scipy

Anyone knows what's going on? Thank you so much!


Solution

  • Conda started compiling numpy/scipy/numexpr with the Intel MKL as of v2.5: https://www.continuum.io/blog/developer-blog/anaconda-25-release-now-mkl-optimizations

    If you add nomkl to the beginning of your conda-requirements.txt file, it will use the non-mkl optimized binaries, and won't download the mkl package.