我正在运行Snow Leapord 10.6并尝试安装以下python模块:
我遇到了问题,因为OSX包含两个版本的Python:
当我执行以下命令时似乎:
sudo easy_install -U {module}
,模块正在这里安装到site-packages目录:
bash-3.2$ ls -al /Library/Python/2.6/site-packages/
total 688
drwxrwxr-x 12 root admin 408 Aug 24 23:26 .
drwxrwxr-x 3 root admin 102 Feb 11 2010 ..
-rw-rw-r-- 1 root admin 119 Feb 11 2010 README
-rw-r--r-- 1 root admin 267 Aug 24 19:03 easy-install.pth
drwxr-xr-x 5 root admin 170 Aug 24 10:42 nose-0.11.4-py2.6.egg
drwxr-xr-x 38 root admin 1292 Aug 24 15:35 numpy
-rw-r--r-- 1 root admin 1618 Aug 24 15:35 numpy-2.0.0.dev8661-py2.6.egg-info
drwxr-xr-x 16 root admin 544 Aug 24 19:07 numscons
drwxr-xr-x 4 root admin 136 Aug 24 19:03 numscons-0.10.1-py2.6.egg
-rw-r--r-- 1 root admin 265 Aug 24 19:07 numscons-0.12.0dev-py2.6.egg-info
-rw-r--r-- 1 root admin 333959 Aug 23 11:51 setuptools-0.6c11-py2.6.egg
-rw-r--r-- 1 root admin 30 Aug 23 11:51 setuptools.pth
但是,当我尝试安装scipy时,我看到以下错误:
config = setup_module.configuration(*args)
File "scipy/setup.py", line 20, in configuration
config.add_subpackage('special')
File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/numpy/distutils/misc_util.py", line 851, in add_subpackage
caller_level = 2)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/numpy/distutils/misc_util.py", line 834, in get_subpackage
caller_level = caller_level + 1)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/numpy/distutils/misc_util.py", line 766, in _get_configuration_from_setup_py
('.py', 'U', 1))
File "scipy/special/setup.py", line 14, in <module>
(numpy.__version__, numpy.__file__))
ValueError: numpy >= 1.4 is required (detected 1.2.1 from /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/numpy/__init__.pyc)
所以它似乎正在我的frameworks目录中寻找旧版本的numpy。我使用import来查看numpy python正在找到哪个版本:
python -c 'import numpy;print numpy.__version__'
1.2.1
果然,它正在查看框架目录,即使我有一个新版本:
/Library/Python/2.6/site-packages/
我知道import首先搜索你的本地目录,然后进入PYTHONPATH,最后查看sys.path。所以我检查了这些,我现在没有设置PYTHONPATH,这是我的sys.path:
/Library/Python/2.6/site-packages/setuptools-0.6c11-py2.6.egg
/Library/Python/2.6/site-packages/nose-0.11.4-py2.6.egg
/Library/Python/2.6/site-packages/numscons-0.10.1-py2.6.egg
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload
/Library/Python/2.6/site-packages
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode
如果我将PYTHONPATH更改为/Library/Python/2.6/site-packages
,然后检查numpy版本,我会得到正确的版本:
bash-3.2$ python -c 'import numpy; print numpy.__version__'
2.0.0.dev8661
但是当我跑sudo python setup.py build/install
时,scipy找不到合适的numpy,即使已经设置了PYTHONPATH。
有人可以帮助我吗?
发现此链接看起来像是解决了我的问题,但我似乎无法让它工作:
http://andreasjacobsen.com/2008/10/10/using-python-setuptools-on-the-mac/
答案 0 :(得分:2)
答案 1 :(得分:2)
答案 2 :(得分:0)
你能暂时将旧的numpy移开吗?
cd /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python
sudo mv numpy numpy-1.2.1 # mv back if need be
答案 3 :(得分:0)
问题是你调用的easy_install是用于在/ System中使用框架的Apple安装的那个,而python是/ usr / bin / python
要查看安装了什么python,请查看easy_install脚本并查看#! line说要使用哪个python。
要获得正确的easy_install,您需要在/ Library中为python安装distibute或setuptools(我猜这是一个带有/ usr / local / bin / python的python.org)。然后使用easy_install
但我会注意到,我确实使用@boocs使用Macports althogh的解决方案,如果只是在scipy等之后,没有其他C库,那么此处显示的其他解决方案将起作用,也请参阅Enthought
答案 4 :(得分:0)
我想出的解决方案如下。
1)不要使用预先安装OSX的Python版本。 Apple显然已对此进行了一些修改,而不是所有内容都进行了修改。因此,您需要安装Python的开发版本。现在 - 我建议安装Python 2.7。这是一篇关于如何做的博客文章:
https://medium.com/cs-math/a3eb146ebfb5
2)安装Python后,需要为Scipy / Numpy安装安装fortran库。使用自制软件(人们真的还在使用MacPorts吗?)
3)安装完家酿啤酒后,安装fortran
brew install gfortran
4)现在你可以用pip成功安装scipy / numpy(警告 - 需要一段时间)
pip install -U numpy pip install -U scipy
DONE
答案 5 :(得分:0)
我有类似的问题,就像同一个问题的人一样,如果你的系统中有两个蟒蛇(比如python2和python3),你希望为新版本安装说numpy(python3) )完成以下步骤:
1-下载numpy
2解压缩
终端中的3-转到解压缩文件夹
4-python3 setup.py install