我想使用 ports 提供的 python24,所以我安装了它,并且python_select -s
显示确实选择了我想要的版本。运行which python
得到/opt/local/bin/python
,运行/opt/local/bin/python
得到我想要的版本。但是当我python
从 shell 运行时,我得到的是/usr/bin/python
版本。我没有 python 别名。
简而言之,情况如下:
- 我相信该路径设置得很合理,并且
which python
似乎证实了这一点。 alias
仅返回 1 个条目,与此无关。
尽管如此,python
从 bash shell 运行却给了我错误的 python!
我有点困惑!我忽略了什么?
答案1
尝试一下hash -d python
。这将告诉 bash 忘记它上次看到 python 可执行文件的位置。
答案2
也许你刚刚更新了某些内容,而你的 bash 实例中有关可执行文件的信息已经过时。请尝试exec bash
。
当我:
- 从
qqq
...开始。/usr/bin/qqq
bash
- 添加一些
qqq
东西/usr/local/bin/
。 - 尝试
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