Boost logo

Boost Users :

From: David Philp (david.philp_at_[hidden])
Date: 2008-08-15 02:52:48


I am trying to write a python extension for the Python that comes with
Sage (Sage bundles its own Python). My user-config.jam is supposed to
direct bjam to the Sage version of Python, but whatever I do, it links
to the System Python.

I think my configuration is correct, because if I (as root) move the
System Python.framework so that bjam cannot find it, I can compile a
working extension. ("Working" in the sense that it can be loaded into
Sage's python, and runs perfectly.)

Otherwise (without hiding System Python), the extension compiles just
fine, but cannot be loaded into the Sage version of python. When
loaded into Sage's python, it fails with "Fatal Python error:
Interpreter not initialized (version mismatch?)" which seems
reasonable. The extension can be loaded into the System Python.

Here are the details. I've used "Sage_root" for the base directory of
Sage to make this a bit more readable. (It is actually /Users/dphilp/
sage-3.0.3.):
boost 1.35.0
sage 3.0.3, which contains
python 2.5.2p2 (slightly patched for sage, and is built using
--enable-framework=Sage_root/local/Frameworks/Python.framework )
Everything seems to work fine, Sage's doctests run perfectly, etc.

In user-config.jam (this is overkill, but I wanted to remove any
possible ambiguity):
using python
   : 2.5
   : Sage_root/local/Frameworks/Python.framework/Versions/2.5/bin/python
   : Sage_root/local/Frameworks/Python.framework/Versions/2.5/include/
python2.5
   : Sage_root/local/Frameworks/Python.framework/Versions/2.5/lib/
python2.5/config ;

bjam --debug-configuration reports that it is using the requested
version of python, i.e. the one inside Sage.

Using --with-python=... on the command line does not help.

When I use --debug-building, there is no hint of the System
Python.framework anywhere. But when I run otool -L my_ext.so, it
reports that the extension is linked to the System framework---that
is, unless I hide the System framework, in which case it reports that
it is linked to the Sage framework.

This seems to me to be a bug in bjam, but I would appreciate any help
either way. (Moving the System's python doesn't seem to be a good
long term solution!)

Thanks in advance for any answers or redirections.

David

==================================
David J Philp
Postdoctoral Fellow
National Centre for Epidemiology and Population Health
Building 62, cnr Mills Rd & Eggleston Rd
The Australian National University
Canberra ACT 0200 Australia

T: +61 2 6125 8260
F: +61 2 6125 0740
M: 0423 535 397
W: http://nceph.anu.edu.au/

CRICOS Provider #00120C


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net