|
From: Pearu P. <pe...@sc...> - 2006-02-10 07:14:59
|
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.. Pearu |