在我的 Mac OS X Lion 上,我在终端中输入以下内容:
hobbes3@hobbes3:~$ which python
/usr/local/bin/python
hobbes3@hobbes3:~$ python
Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D
hobbes3@hobbes3:~$ /usr/local/bin/python
Python 2.7.2 (default, Feb 23 2012, 00:05:44)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
我的部分/usr/local/bin/
样子如下:
lrwxr-xr-x 1 root wheel 32B Feb 23 00:07 pydoc -> ../Cellar/python/2.7.2/bin/pydoc
lrwxr-xr-x 1 root wheel 33B Feb 23 00:07 python -> ../Cellar/python/2.7.2/bin/python
lrwxr-xr-x 1 root wheel 40B Feb 23 00:07 python-config -> ../Cellar/python/2.7.2/bin/python-config
lrwxr-xr-x 1 root wheel 36B Feb 23 00:07 python2.7 -> ../Cellar/python/2.7.2/bin/python2.7
lrwxr-xr-x 1 root wheel 43B Feb 23 00:07 python2.7-config -> ../Cellar/python/2.7.2/bin/python2.7-config
lrwxr-xr-x 1 root wheel 34B Feb 23 00:07 pythonw -> ../Cellar/python/2.7.2/bin/pythonw
lrwxr-xr-x 1 root wheel 37B Feb 23 00:07 pythonw2.7 -> ../Cellar/python/2.7.2/bin/pythonw2.7
为什么我第一次输入时python
得到的是 v2.7.1,但当我输入完整路径时/usr/local/bin/python
得到的是 v2.7.2?
我使用 homebrew 安装了 v2.7.2,并且我想使用该版本,因为我相信我的 Django 安装在 v2.7.2 python 下。
答案1
因为可怜的 bash 搞糊涂了。清除python
的哈希条目。
hash -d python
答案2
简而言之,它们之所以不同是因为您对它们的称呼不同。
$ python
向系统询问 Python 的默认版本。这与执行 相同env python
。通常,如果您运行which python
它,它会向您显示要运行的路径。$ /usr/local/bin/python
在该路径上执行
大多数类 Unix 操作系统都有类似 Linux 中的“替代”概念(某些 BSD 上的“端口”)。这就是定义语言的系统默认解释器的地方。
https://stackoverflow.com/questions/5846167/how-to-change-default-python-version将为你提供如何改变它的依据。