我正在使用10.8.1(Mountain Lion)。
升级到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
一起使用。有谁知道这里发生了什么?
编辑:我应该澄清一点,我不认为这是一个完整的解决方案 - 您应该能够使用sudo port select --set python python25-apple
之类的命令更改回Apple版本,我怀疑我只会通过解决根本问题来回来。
记录中,~/.profile
:
export PATH=/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/texbin
答案 0 :(得分:3)
如果没有更多信息,很难猜出您所看到的行为以及您希望看到的行为。 MacPorts确实为您提及的某些命令提供port select
选项,例如python
和ipython
,但does not yet for 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系统Pythons都没有提供pip
和ipython
,因此不清楚捆绑的OS X默认值是什么意思。也许您已将这些版本安装到系统Python 2.7中。如果是这样,默认情况下,您会看到/usr/bin/python2.7
和/或安装在/usr/local/bin
和/Library/Python/2.7
中。
更新:在MacPorts提供port select pip
选项(按照上面链接的MacPorts问题中的要求)之前,您应该可以通过修改pip
执行MacPorts版本你的.profile
将Python框架bin目录添加到路径的开头:
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