1

我正在使用 10.8.1(山狮)。

升级到 Mountain Lion 后,我的一些 MacPorts 停止工作。为了更轻松的生活,我只是清除/opt/local/并重新安装了最新版本的 MacPorts,然后是端口本身。

这产生了副作用,我使用的许多端口都回到了捆绑的 OS X 默认设置。我打开.profile以确保它/opt/local/bin首先出现在 PATH 中,但这并没有解决问题。

我怀疑的输出port select是一个症状:

$ port select python
Available versions for python:
    none (active)  # shouldn't the bundled version be here?
    python27
    python32

$ which python
/usr/bin/python

更改活动端口 ( sudo port select --set python python27) 可以解决问题,但并非所有端口都可以与port select. 有谁知道这里发生了什么?

编辑:我应该澄清一下,我不认为这是一个完整的修复 - 你应该能够使用类似的命令更改回 Apple 版本sudo port select --set python python25-apple,我怀疑我只能通过解决潜在问题来恢复。

作为记录,以下内容~/.profile

export PATH=/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/texbin
4

1 回答 1

3

如果没有更多信息,就很难猜测您看到的是什么行为以及您希望看到什么。MacPorts 确实为port select您提到的一些命令提供了选项,pythonipython没有为 pip提供选项。通常,MacPorts 安装带有特定于版本后缀的 Python 脚本,因此与port select选项无关,您应该找到那些带有后缀的命令,例如:

$ port select --list ipython
Available versions for ipython:
    ipython27
    ipython32 (active)
    none
$ which ipython
/opt/local/bin/ipython
$ which ipython-2.7
/opt/local/bin/ipython-2.7
$ port select --list pip
Warning: Unable to get active selected version: The specified group 'pip' does not exist.
Error: The 'list' command failed: The specified group 'pip' does not exist.
$ which pip
$ which pip-2.7
/opt/local/bin/pip-2.7

顺便说一句,Apple 既不提供 OS X 系统 Pythonpip也不ipython提供,因此不清楚捆绑的 OS X 默认值是什么意思。也许您将这些版本安装到系统 Python 2.7。如果是这样,默认情况下,您会看到它们与/usr/bin/python2.7和/或安装在/usr/local/binand中/Library/Python/2.7

更新:在 MacPorts 提供port select pip选项之前(如上面链接的 MacPorts 问题中所要求的那样),您应该能够通过修改在路径开头添加 Python 框架 bin 目录来pip执行 MacPorts 版本:.profile

export PATH=/opt/local/Library/Frameworks/Python.framework/Versions/Current/bin:/opt/local/bin:...

2014-04 更新: MacPorts 现在确实提供了一个port select pip选项,因此您不再需要进行PATH破解。

$ sudo port select pip
Available versions for pip:
    none (active)
    pip27
    pip33
$ sudo port select pip pip27
Selecting 'pip27' for 'pip' succeeded. 'pip27' is now active.
$ hash
$ which pip
/opt/local/bin/pip
于 2012-09-24T00:46:59.810 回答