From: Barry S. <ba...@ba...> - 2009-09-29 22:07:18
|
On 28 Sep 2009, at 17:27, William Stein wrote: > On Mon, Sep 28, 2009 at 9:14 AM, John Hunter <jd...@gm...> > wrote: >> On Mon, Sep 28, 2009 at 10:48 AM, William Stein <ws...@gm...> >> wrote: >>> If you could just try running your matplotlib build on >>> bsd.math.washington.edu and reporting about whether or not it works, >>> that would be very helpful, since it will indicate whether the >>> problem >>> is somehow in Sage or in pyCXX or Matplotlib itself or something >>> else. >> >> I was able to build into a mostly clean environment (rebuild all deps >> zlip, freetype, png) using my OSX make file in, but I had to update >> the MACOSX_DEPLOYMENT_TARGET to 10.6 (I've committed this to svn >> HEAD). >> >> >> PREFIX=~/devtest make -f make.osx fetch deps mpl_build mpl_install >> >> But even simple tests are failing with:: >> >> jdh2358@bsd:~> LD_LIBRARY_PATH=~/devtest/lib/ >> PYTHONPATH=~/devtest/lib/python2.6/site-packages/ /usr/bin/python -c >> 'import matplotlib; matplotlib.use("Agg"); from matplotlib.pyplot >> import *; plot([1,2,3]); savefig("test")' >> Traceback (most recent call last): >> File "<string>", line 1, in <module> >> File "/Users/jdh2358/devtest//lib/python2.6/site-packages/ >> matplotlib/pyplot.py", >> line 7, in <module> >> from matplotlib.figure import Figure, figaspect >> File "/Users/jdh2358/devtest//lib/python2.6/site-packages/ >> matplotlib/figure.py", >> line 16, in <module> >> import artist >> File "/Users/jdh2358/devtest//lib/python2.6/site-packages/ >> matplotlib/artist.py", >> line 6, in <module> >> from transforms import Bbox, IdentityTransform, TransformedBbox, >> TransformedPath >> File "/Users/jdh2358/devtest//lib/python2.6/site-packages/ >> matplotlib/transforms.py", >> line 34, in <module> >> from matplotlib._path import affine_transform >> ImportError: /Users/jdh2358/devtest/lib/python2.6/site-packages/ >> matplotlib/_path.so: >> no appropriate 64-bit architecture (see "man python" for running in >> 32-bit mode) This error has nothing to do the PyCXX isn't it a build problem not crating a fat binary with -arch x86_64 for _path.so. Use lipo -info to see what is inside _path.so. >> >> I'm attaching my build output in case anyone sees anything that might >> be triggering this 32bit/64bit problem (see attached for full >> output). >> I did not rebuild numpy and this may be the problem since the failure >> is in the _path module. I'll give that a try next > > I think it's definitely an issue with PyCXX. I installed the latest > version of PyCXX and tried their test example program, and got the > dreaded "Abort trap": > > bash-3.2$ python > Python 2.6.2 (r262:71600, Sep 27 2009, 13:41:53) > [GCC 4.2.1 (Apple Inc. build 5646)] on darwin > Type "help", "copyright", "credits" or "license" for more information. >>>> import CXX.example > CXX is installed. > The support files you need are in the PYTHON/etc/CXX directory. > The include files are in the distutils include path already. > Just refer to them as "CXX/CXX_Objects.h", etc. > > range object created 0x1003140b0 > range object destroyed 0x1003140b0 >>>> CXX.example.test() > Example Test starting > Trying to convert a NULL to an Py::Int > Abort trap > bash-3.2$ pwd > /Users/was/build/sage-4.1.2.alpha4/spkg/build/matplotlib/trunk/ > matplotlib/pycxx-6.1.1/Demo/Python2 > > ---- > > Note that installing PyCXX and their test program was not easy. I > watched their "python setup.py install" fail repeatedly, then I would > copy missing files where they should go, and iterate (about 6 times I never use the setup.py - I keep trying to delete it from the kits but have users want it and contribute fixes. I do not recommend installing PyCXX into a system for a couple of reasons. On one system you may well end up using more then one version of PyCXX. For example one older version of maintenance and a newer version for new development. YOu may have more then one project using PyCXX that need compiler options that conflict. If you install PyCXX into the system the object code will be wrong so some projects. Your experience is convincing me to delete setup.py to avoid this in future. However the tests do all work on 10.6. You will need a new make file to use Apple's python 2.6.1. The PyCXX 6.1.1 kit does not have one to do this. |