[Numpy-discussion] Is there a known problem compiling numpy with VC7? Success

Pearu Peterson pearu at scipy.org
Thu Feb 9 23:15:02 CST 2006

On Thu, 9 Feb 2006, Tim Hochberg wrote:

> Tim Hochberg wrote:
>> Pearu Peterson wrote:
>>> On Thu, 9 Feb 2006, Tim Hochberg wrote:
>>>> I had this fantasy that default_lib_dirs would get picked up 
>>>> automagically; however that does not happen. I still ended up putting:
>>>>           from  numpy.distutils import system_info
>>>>           library_dirs = system_info.default_lib_dirs
>>>>           result = config_cmd.try_run(tc,include_dirs=[python_include], 
>>>> library_dirs=library_dirs)
>>>> into setup.py. Is that acceptable? It's not very elegant.
>>> No, don't use system_info.default_lib_dirs.
>>> Use distutils.sysconfig.get_python_lib() to get the directory that 
>>> contains Python library.
>> That's the wrong library. Get_python_lib gives you the location of the 
>> python standard library, not the location of python24.lib. The former being 
>> python24/Lib (or python24/Lib/site-packages depending what options you feed 
>> get_python_lib) 'and the latter being python24/libs on my box.

Ok, but using system_info.default_lib_dirs is still wrong, this list is 
not designed for this purpose..

> To follow up on this a little bit, I investigated how distutils itself finds 
> python24.lib. It turns out that it is in build_ext.py, near line 168. The 
> relevant code is:
>       # also Python's library directory must be appended to library_dirs
>       if os.name == 'nt':
>           self.library_dirs.append(os.path.join(sys.exec_prefix, 'libs'))

Hmm, this should be effective also for numpy.distutils. self.library_dirs 
and other such attributes are used in distutils.command.build_ext.run() 
method while our numpy.distutils.command.build_ext.run() doesn't. So, I we 
have to do is to update numpy.distutils.command.build_ext.run() method to 
resolve this issue. This should fix also rpath issues that was reported on 
this list for certain platforms. I'll look fixing it today..


More information about the Numpy-discussion mailing list