|
Boost Users : |
From: David Philp (david.philp_at_[hidden])
Date: 2008-08-18 01:03:31
This was a bug in boost.build (in python.jam). The following changes
need to be made to python.jam:
853,854c849
<
< if $(framework-directory) = Python.framework
--- > if $(framework-directory:D=) = Python.framework 855a851 > fwk = $(framework-directory) ; 905c899 < if $(framework-directory) --- > if $(fwk) On 15/08/2008, at 4:52 PM, David Philp wrote: > > 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 > > > > ================================== 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