令人困惑的 Python 版本

令人困惑的 Python 版本

在我的 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将为你提供如何改变它的依据。

相关内容