Osx 'which' 命令运行异常

Osx 'which' command working weird

为了处理不同版本的Python问题,我安装了一个python27 using macport, later py27-pip, and execute the

sudo port install python27
sudo port install py27-pip
sudo port select --set pip pip27
sudo port select --set python python27

后来我尝试用pip安装一些包。 pip 仍然指的是 Mac python 而不是端口 python。我认为 'which' 命令应该指向正确的 pip 版本。但结果是

$which pip
/opt/local/bin/pip
$pip --version
pip 7.1.2 from /Library/Python/2.7/site-packages (python 2.7)
$/opt/local/bin/pip --version
pip 7.1.2 from /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (python 2.7)

谁能帮忙指出为什么 'which' 不能在这里工作?谢谢。

which 工作正常。但是 which 并未反映您的 shell 查找缓存。

每当您 运行 第一次在 bash 中没有路径的命令时,bash 会缓存 which 调用的结果。以后使用该命令时,不必再次在 PATH 中找到该命令。

您可能在 运行 sudo port select --set pip pip27 之前有 运行 pip,并且 bash 仍然缓存了旧路径。

运行 hash -d pip 从缓存中清除该条目,或 运行 hash -r 完全清除缓存。