On 28 Sep 2009, at 17:27, William Stein wrote:

On Mon, Sep 28, 2009 at 9:14 AM, John Hunter <jdh2...@gmail.com> wrote:
On Mon, Sep 28, 2009 at 10:48 AM, William Stein <wst...@gmail.com> 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::

jdh2...@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.

Attachment: example_mac_apple_py26.mak
Description: Binary data



Save it to the top of the PyCXX files, where all the other make files are.

Then you can build and run all tests with:

$ make -f example_mac_apple_py26.mak clean test

All the tests will pass without error.

Attached is the log of the build and test on Mac OS X 10.6.1 I ran just now to confirm this.

Attachment: py26.log
Description: Binary data




I suspect that the PyCXX that you installed with setup.py is not correct.
I suggest you delete it from out of the system and point directly to the
headers and C and C++ files you need out of a exploded tarball.

This is what I do for PySVN for example.



I've cc'd the PyCXX maintainer Barry Scott.  Barry, do you have access
to an OS X 10.6 install, since it seems PyCXX is broken there?  If
not, I can give you an account on a machine at University of
Washington.   PyCXX is the single component of Sage
(http://sagemath.org) that is holding us back from finishing the OS X
10.6 port.

-- William

Let me know how else I can help.

Barry

------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to