Statically linked extension and relative import
cournape at gmail.com
Thu May 7 13:45:17 CEST 2009
On Thu, May 7, 2009 at 8:34 PM, Andrew MacIntyre
<andymac at bullseye.apana.org.au> wrote:
> David Cournapeau wrote:
>> I am trying to build a 3rd party extension and link it statically to
>> python. I managed to get things working by customizing Setup.local in
>> python source tree, but I have a problem for imports of the 'foo.bar'
>> form. For example, let's say the 3rd party module is laid out as
>> and __init__.py contains:
>> import foo.bar
>> I can build the bar extension and link it statically to python such as
>> from python, "import bar" works. But how can I make it "recognize"
>> "from foo import bar" ? I tried to understand how this works at the C
>> level in import.c, but I am a bit lost in the code. The ultimate goal
>> is to manage to get code coverage of the C code of the extension
>> through gcov, which does not support coverage of shared libraries ATM.
> If you link the bar extension statically, it is not in the foo package
> namespace (which is why "import bar" works),
Yes, I understand this.
> so should be imported as bar
> in foo's __init__.py.
> from foo import bar
But then I have to modify the 3rd party package for statically linked
versions. This means in particular that the same source cannot be used
for static and dynamic builds ?
More information about the Python-list