Osx''命令工作很奇怪

时间:2015-11-13 14:32:12

标签: python macos macports

为了处理不同版本的Python问题,我已经使用macport安装了python27,后来py27-pip,并执行

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。我想'哪个'命令应该指向正确的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)

任何人都可以帮忙指出为什么'哪个'不在这里工作?谢谢。

1 个答案:

答案 0 :(得分:2)

which工作得很好。但which并不能反映您的shell查找缓存。

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

您在运行pip之前可能已经运行sudo port select --set pip pip27,而bash仍然会缓存旧路径。

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