在OS X上,/usr/bin/python与/opt/local/bin/python2.7有何区别?

6
你能否对OS X自带的Python解释器和通过MacPorts安装的Python解释器之间的交互进行一些解释?
在安装networkx和matplotlib时,我遇到了使用/usr/bin/python与/opt/local/bin/python2.7相互作用的困难。(后者本身是指向/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7的软链接)
如何确切地知道我正在使用哪个Python、pip和Python库?
更重要的是,似乎无法在Lion上安装matplotlib。它提示“需要numpy 1.6或更高版本才能构建。(找到1.5.1)”。如果我运行 sudo pip install --upgrade numpy 进行升级,则没有任何帮助。随后尝试安装matplotlib (sudo /usr/local/bin/pip install matplotlib)仍然会出现相同的错误(需要numpy 1.6...)。如何安装matplotlib?
2个回答

9

关于Python的注意事项

  • 如果一个脚本foobar.py#!/usr/bin/env python开头,那么你将始终得到OS X Python。即使MacPorts在你的路径中将/opt/local/bin放在/usr/bin之前。原因是MacPorts使用名称python2.7。如果你想要使用env并使用MacPorts Python,你必须写#!/usr/bin/env python2.7
  • 如果一个脚本foobar.py明确以#!/usr/bin/python#!/opt/local/bin/python2.7开头,则将使用相应的Python解释器。

关于pip的注意事项

  • 要为/usr/bin/python安装pip,需要运行sudo /usr/bin/easy_install pip。然后调用pipeasy_install不会在/usr/bin/pip中安装pip,而是在/usr/local/bin/pip中安装)
  • 要为/opt/local/bin/python2.7安装pip,需要运行sudo port install py27-pip。然后调用pip-2.7。你将在/opt/local/bin中获得pip。要小心,因为如果你键入pip2.7,你将得到/usr/local/bin/pip2.7(OS X pip)。

安装networkxmatplotlib

  • 要为OS X Python安装networkx,你应该运行sudo /usr/local/bin/pip install networkx。我不知道如何在OS X Lion上安装matplotlib。可能是因为OS X必须坚持使用numpy 1.5.1,因为它在内部使用它。
  • 要为MacPorts-Python安装networkxmatplotlib,请调用sudo pip-2.7 install networkxsudo pip-2.7 install matplotlibmatplotlib会有很多警告,但它可以通过。

感谢您提供如此详尽的答案。您刚刚让我避免了一场相当大的麻烦! - GuiSim
我很惊讶这个答案没有更多的赞。这是非常宝贵的信息,在过去的几天里我一直在苦苦寻找。 - Dave Liu

0

我也可以建议使用Continuum Analytics的“anaconda”发行版。这样做的一个好处是,您就不需要修改标准的OS X Python环境。


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