‘which python’ 指向我想要的 python,但是 ‘python’ 运行错误的版本

‘which python’ 指向我想要的 python,但是 ‘python’ 运行错误的版本

我想使用 ports 提供的 python24,所以我安装了它,并且python_select -s显示确实选择了我想要的版本。运行which python得到/opt/local/bin/python,运行/opt/local/bin/python得到我想要的版本。但是当我python从 shell 运行时,我得到的是/usr/bin/python版本。我没有 python 别名。

简而言之,情况如下:

  1. 我相信该路径设置得很合理,并且which python似乎证实了这一点。
  2. alias仅返回 1 个条目,与此无关。

尽管如此,python从 bash shell 运行却给了我错误的 python!

我有点困惑!我忽略了什么?

答案1

尝试一下hash -d python。这将告诉 bash 忘记它上次看到 python 可执行文件的位置。

答案2

也许你刚刚更新了某些内容,而你的 bash 实例中有关可执行文件的信息已经过时。请尝试exec bash

当我:

  1. qqq...开始。/usr/bin/qqqbash
  2. 添加一些qqq东西/usr/local/bin/
  3. 尝试qqq以相同的方式重新开始bash

它使用已经查找过的版本 ( /usr/bin/qqq)

但是当我重新启动 bash 时,它会qqq再次查找并获取/usr/local/bin/qqq

答案3

另一种可能性是脚本本身在脚本的第一行指定要运行哪个 Python 可执行文件。例如,我的系统安装了 Python 2.6 和 2.7,如果第一行是这样的:

#!/usr/bin/Python-2.6.8/bin/python

然后我得到了 Python 2.6,即使 2.7 是系统默认的。

指定默认值的通常方式是:

#!/usr/bin/env python

相关内容