Hi,
It turns out that Leopard includes numpy. But it is an older version
that won't detect the version string of gfortran correctly (thus
preventing scipy from being installed). But, when I downloaded the
numpy svn and did python setup.py python was still finding the older
version of numpy.
The problem is a trivial but unfortunate ordering of things in the
default sys.path.
Here is the message that I sent to the pythonmac-sig about this:
************************************************************************
I have been playing around with python on Leopard today. Overall, I
am very pleased, but I just ran into a problem that will affect a
large number of users.
In Leopard, Apple includes a number of python packages in:
ls /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python
CoreGraphics easy_install.pyc
setuptools-0.6c7-py2.5.egg-info
OpenSSL fetchmailconf.py
site.py
PyObjC fetchmailconf.pyc
site.pyc
PyObjC.pth fetchmailconf.pyo
site.pyo
PyRSS2Gen-1.0.0-py2.5.egg-info libsvn
svn
PyRSS2Gen.py macholib
twisted
PyRSS2Gen.pyc
macholib-1.2.1.dev-py2.5.egg-info wx
Twisted-2.4.0-py2.5.egg-info modulegraph
wx-2.8-mac-unicode
Twisted_Words-0.4.0-py2.5.egg-info
modulegraph-0.7.2.dev-py2.5.egg-info wxPython
Twisted_Xish-0.4.0-py2.5.egg-info numpy
wxPython_common-2.8.4.0-py2.5.egg-info
altgraph numpy-1.0.1-py2.5.egg-info
wxaddons
altgraph-0.6.8.dev-py2.5.egg-info pkg_resources.py
wxaddons-2.8.4.0-py2.5.egg-info
bdist_mpkg pkg_resources.pyc
wxversion.py
bdist_mpkg-0.4.3.dev-py2.5.egg-info py2app
wxversion.pyc
bonjour
py2app-0.4.1.dev-py2.5.egg-info xattr
bonjour_py-0.2-py2.5.egg-info pyOpenSSL-0.6-py2.5.egg-info
xattr-0.5-py2.5.egg-info
dateutil
python_dateutil-1.2-py2.5.egg-info zope
easy_install.py setuptools
zope.interface-3.3.0-py2.5.egg-info
At first I was very excited to see that Apple is including things like
setuptools, numpy, twisted......
But then I saw that some of the versions are quite old. Naturally, I
grabbed the latest numpy version from svn and did a python setup.py
install. Everything built just fine, but when I did an import numpy,
I got Apples version:
>>> import numpy
>>> print numpy.__file__
/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/numpy/__init__.pyc
After looking at sys.path, it became clear what the problem is:
Running python setup.py install on Leopard causes packages to be
installed in the usual:
/Library/Python/2.5/site-packages
But, Apple put this directory _after_
/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python
in sys.path. This, even if a user installs a newer version of one of
these packages, the builtin python will always use Apple's older
version.
Obviously, I can set PYTHONPATH to get
/Library/Python/2.5/site-packages earlier in the sys.path list, but
this is going to bite many people. Is this a bug that I should report
to Apple, or is there a better work around? Also, this information
needs to be posted somewhere so we don't see this question a billion
times on various lists over the lifetime of Leopard.
Cheers,
Brian