NumPy在OS X 10.7上无法从1.5.1升级到1.6.2。

5

我想更新/升级我的NumPy,但一直失败。我认为可能安装了多个版本的NumPy在不同的目录中,但是Python默认导入旧版本。请问有什么帮助吗?

这是我的Python所在位置:

Gonzo-vs-Kitties:~ brian$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python

以下是Python导入的版本:

Gonzo-vs-Kitties:~ brian$ python
Python 2.7.3 (v2.7.3:70274d53c1dd, Apr  9 2012, 20:52:43) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> print numpy.__version__
1.5.1
>>>

现在我使用easy_install升级NumPy:
Gonzo-vs-Kitties:~ brian$ sudo easy_install --upgrade numpy
Searching for numpy
Reading http://pypi.python.org/simple/numpy/
Reading http://numpy.scipy.org
Reading http://sourceforge.net/project/showfiles.php?group_id=1369&package_id=175103
Reading http://numeric.scipy.org
Best match: numpy 1.6.2
Processing numpy-1.6.2-py2.7-macosx-10.7-intel.egg
numpy 1.6.2 is already the active version in easy-install.pth
Installing f2py script to /usr/local/bin

Using /Library/Python/2.7/site-packages/numpy-1.6.2-py2.7-macosx-10.7-intel.egg
Processing dependencies for numpy
Finished processing dependencies for numpy

即使我升级了,NumPy仍然是旧版本:

>>> import numpy
>>> print numpy.__version__
1.5.1
>>>

这是我的sys.path:

>>> print sys.path
['', '/Library/Python/2.7/site-packages/nose-1.2.1-py2.7.egg', '/Library/Python/2.7/site-packages/virtualenv-1.8.2-py2.7.egg', '/Users/brian/Code/trac/genshi-trunk', '/Users/brian/Code/trac/trac-trunk', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/Library/Python/2.7/site-packages/pip-1.2.1-py2.7.egg', '/Library/Python/2.7/site-packages/numpy-1.6.2-py2.7-macosx-10.7-intel.egg', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages', '/Library/Python/2.7/site-packages']

有什么想法吗?

通常情况下,对于这类问题,virtualenv非常出色。你可以创建一个新的虚拟环境,并安装任何新版本的东西,而不用担心导入的问题、冲突等等。而且,如果出现任何问题,排除故障也更加容易。 - miki725
1个回答

4

检查你的numpy包的路径:

import numpy
print numpy.__path__

请检查是否安装了您刚刚安装的软件。


这不是我刚安装的那个。path 属性指向 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy'。 有没有解决方案? - BMS
删除旧版本的numpy,或者升级它。 - waitingkuo
1
当我使用pip和/或easy_install进行安装时,它会删除我的更新版本1.6.2 NumPy,并完全忽略1.5.1 NumPy。如何卸载卸载程序看不到的版本? - BMS
2
取决于你如何安装它们。或者你可以进入该目录并直接删除它。 - waitingkuo
1
我手动移除了旧的NumPy存储目录。Python现在找到了更新的NumPy。非常感谢。 - BMS
2
请注意,覆盖 /System/... 中的 numpy 是一个非常糟糕的想法,因为它可能会被操作系统内部使用。到目前为止最安全的方法是本地安装numpy(即从源代码安装,python setup.py install --user),并更新您的PYTHONPATH,以便在系统numpy之前捕获您的本地numpy(只需执行 PYTHONPATH=$HOME/.local/lib/python2.x/site-packages:$PYTHONPATH)。 - Pierre GM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接