【问题标题】:Osx 'which' command working weirdOsx“哪个”命令工作很奇怪
【发布时间】:2015-11-13 14:32:11
【问题描述】:

为了处理不同版本的Python问题,我已经安装了一个python27,使用macport,后来的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 而不是 port 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)

谁能帮忙指出为什么“哪个”在这里不起作用?谢谢。

【问题讨论】:

  • 当您运行hash -r,然后再次运行pip --version 时会发生什么?

标签: python macos macports


【解决方案1】:

which 工作正常。但是which 并没有反映你的 shell 查找缓存。

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

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

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

【讨论】:

  • 谢谢,正是因为缓存。
猜你喜欢
  • 2014-08-15
  • 2022-12-06
  • 2011-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-10
  • 1970-01-01
相关资源
最近更新 更多