有人能解释一下python 2.6在我的机器上是如何默认运行的吗?看起来python
指向2.7,所以which
似乎没有给出正确的信息。
~> python --version
Python 2.6.5
~> which python
/opt/local/bin/python
~> /opt/local/bin/python --version
Python 2.7.2
~> ls -l /opt/local/bin/python
lrwxr-xr-x 1 root admin 24 12 Oct 16:02 /opt/local/bin/python -> /opt/local/bin/python2.7
当我产生一个错误,我看到什么是真正的运行。为什么会这样?
~> python -error-making-argument
Unknown option: -e
usage: /Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Try `python -h' for more information.
我该怎么纠正呢?
----编辑:----
从评论中的建议:
~> alias
alias cp='cp -i'
alias gcc='gcc -Wall'
~> type python
python is /opt/local/bin/python
Bash使用internal hash table优化
$PATH
查找。当您在前面的$PATH
中安装一个与现有程序同名的新程序(在本例中为python
)时,Bash并不知道,而是继续使用旧程序。可执行文件which
执行完整的$PATH
搜索并打印出预期结果。要解决此问题,请运行命令
hash -d python
。这将从Bash的哈希表中删除python
,并强制它在下次调用时执行完整的$PATH
搜索。或者,也可以运行hash -r
来完全清除哈希表。^{} builtin 将告诉您如何解释给定的命令。如果命令是散列的,则意味着Bash将跳过对可执行文件的
$PATH
搜索。我刚刚检查了我的
.bash_profile
,它包含以下内容:评论这件事解决了我的问题。
如果有人能告诉我为什么
which
和type
仍然给出了错误的答案,我将非常感激,并将给他们一个复选标记!谢谢你的指导!
相关问题 更多 >
编程相关推荐