[SciPy-dev] Is it ok to depend on ctypes for scipy code ?
David Cournapeau
david at ar.media.kyoto-u.ac.jp
Sat Jun 16 04:03:59 EDT 2007
Travis Oliphant wrote:
>> We are still maintaining 2.3 compatibility.
>>
>>
>>
>
> Yes, but I don't think we would mind having some code that requires
> another library to be installed to be used (as long as it builds and
> installs without it). For example, some code in SciPy requires the PIL
> in order to be useful.
>
> So, is it just a matter of inserting the dummy function
>
> initfoo()
>
I finally got it :) Your remark made me understand the thing that Robert
was talking about. As I still couldn't understand the whole issue yet, I
installed the whole visual studio thing and tried a fake module to get
the problem. This all boils down to the fact that whereas on linux (and
mac os X at least), a python module and a shared library really are the
same thing, on windows, they are quite a different beast. For the
record, here are the different problems as far as I understand:
- first, distutils, at least on windows, is looking for a function
initmodule (this is what you and Robert were talking about), and is
needed for the link to success. The reason why I didn't understand
Robert's explanation at all is that distutils *explicitely* tells VS to
export the initmodule function, hence has to exist.
- then, the obvious quick fix being as Travis suggested to put a
fake function, but this does not seem to help much (eg the library
builds but is not usable from ctypes).
I knew there were some differences between "Linux" and windows linking
models (symbol visibility), but they are actually much deeper than I
thought.
I will try to see if I can easily extend numpy.distutils to build "real"
shared libraries (using oof as a reference, as mentionned by Rober on a
different ML I found by googling for the problem), which should solve
the whole issue, right ? Or am I missing something else ?
David
More information about the SciPy-Dev
mailing list