Supplying NumPy site.cfg arguments to pip

joshayers picture joshayers · Dec 7, 2012 · Viewed 10.4k times · Source

I'm using NumPy built against Intel's Math Kernel Library. I use virtualenv, and typically use pip to install packages.

However, in order for NumPy to find the MKL libraries, it's necessary to create a site.cfg file in the NumPy source directory prior to compiling it, then manually build and install. I could script this whole process, but I was hoping for a simpler solution.

I have a standard site.cfg file that can be used for this purpose under version control. Are there any pip command line options that will tell it to copy a particular file to the source directory before building a package?

Alternatively, are there any environment variables that can be set instead of supplying the library paths in a site.cfg file? Here is the site.cfg file that I use. It was taken almost verbatim from Intel's site.

[mkl]
library_dirs = /opt/intel/composer_xe_2013.1.117/mkl/lib/intel64
include_dirs = /opt/intel/composer_xe_2013.1.117/mkl/include
mkl_libs = mkl_rt
lapack_libs =

For reference, I'm running Ubuntu, Python 2.7, and NumPy 1.6.

Answer

mjk picture mjk · Dec 10, 2012

From the source (https://github.com/numpy/numpy/blob/master/site.cfg.example):

To assist automatic installation like easy_install, the user's home directory will also be checked for the file ~/.numpy-site.cfg .

Is that a workable solution? You'd still need to preload the home directories with the global .numpy-site.cfg, but you wouldn't have to muck with the build or installation after that.