python pip specify a library directory and an include directory python pip specify a library directory and an include directory python python

python pip specify a library directory and an include directory


pip has a --global-option flag

You can use it to pass additional flags to build_ext.
For instance, to add a --library-dirs (-L) flag:
pip install --global-option=build_ext --global-option="-L/path/to/local" pyodbc

gcc supports also environment variables:http://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html

I couldn't find any build_ext documentation, so here is the command line help

Options for 'build_ext' command:  --build-lib (-b)     directory for compiled extension modules  --build-temp (-t)    directory for temporary files (build by-products)  --plat-name (-p)     platform name to cross-compile for, if supported                       (default: linux-x86_64)  --inplace (-i)       ignore build-lib and put compiled extensions into the                       source directory alongside your pure Python modules  --include-dirs (-I)  list of directories to search for header files                       (separated by ':')  --define (-D)        C preprocessor macros to define  --undef (-U)         C preprocessor macros to undefine  --libraries (-l)     external C libraries to link with  --library-dirs (-L)  directories to search for external C libraries                       (separated by ':')  --rpath (-R)         directories to search for shared C libraries at runtime  --link-objects (-O)  extra explicit link objects to include in the link  --debug (-g)         compile/link with debugging information  --force (-f)         forcibly build everything (ignore file timestamps)  --compiler (-c)      specify the compiler type  --swig-cpp           make SWIG create C++ files (default is C)  --swig-opts          list of SWIG command line options  --swig               path to the SWIG executable  --user               add user include, library and rpath  --help-compiler      list available compilers


Building on Thorfin's answer and assuming that your desired include and library locations are in /usr/local, you can pass both in like so:

sudo pip install --global-option=build_ext --global-option="-I/usr/local/include/" --global-option="-L/usr/local/lib"  <you package name>


Just FYI... If you are having trouble installing a package with pip, then you can use the

--no-clean option to see what is exactly going on (that is, why the build did not work). For instance, if numpy is not installing properly, you could try

pip install --no-clean numpy

then look at the Temporary folder to see how far the build got. On a Windows machine, this should be located at something like:

C:\Users\Bob\AppData\Local\Temp\pip_build_Bob\numpy

Just to be clear, the --no-clean option tries to install the package, but does not clean up after itself, letting you see what pip was trying to do.

Otherwise, if you just want to download the source code, then I would use the -d flag. For instance, to download the Numpy source code .tar file to the current directory, use:

pip install -d %cd% numpy