0

当我在解释器中运行它们时,我试图理解使用哪个 python 版本感到困惑?也就是说,当我有多个版本时,shell 如何决定加载哪个 python 版本。我有我的 /usr/bin 的快照。它至少有两个不同的 python 版本 2.5 和 2.6。我没有在我的 .bashrc 中指定任何东西来选择哪一个。当我在 bash shell 上执行 python 命令时,python 解释器会打开,但会加载 2.6 版。shell如何检测到这个?如果我想更改版本,我该怎么做?也就是说,我想最后更改默认版本 /usr/bin/python 中的这些文件是什么类型的文件。我试图在编辑器中打开它们,我看到了一些@@@。我在这里阅读了很多帖子,但有些让我感到困惑。

ls /usr/bin/python
python            python2.5         python2.6         pythonw           pythonw2.6        
python-config     python2.5-config  python2.6-config  pythonw2.5   

python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
4

2 回答 2

2

要知道默认使用哪个版本,请键入

which python

要使用另一个,请在调用它们时使用完整路径:

/usr/bin/python/python2.5 myfile.py
/usr/bin/python/python2.6 myfile.py
etc.

如果要更改默认值,可以在~/.bashrc例如以下位置创建别名:

my_python='/usr/bin/python/python2.7'

或更好地改变/usr/bin/python(或任何来自which python)的链接方向。这是一个链接,因此请将其链接到您需要的确切版本。

ln -s /prefered/path/of/python /usr/bin/python

您在其中看到的文件/usr/bin/python是可执行文件。您可以执行以下操作来查看此内容:

file /usr/bin/python/python2.5

就我而言:

$ file /usr/bin/python
/usr/bin/python: symbolic link to `python2.7'
$ file /usr/bin/python2.7
/usr/bin/python2.7: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xf66a10f2c444b2329b25ab6790abb7fbb4fe3f78, stripped
于 2013-06-13T22:31:52.550 回答
1
python --version

然后转到您的 .bashrc (应该在您的主目录中)并添加:

alias python='[your path]'

对我来说,我有:

alias python='/usr/bin/python2.7'

只要确保你说:

source ./bashrc

应用您的更改。

于 2013-06-13T22:41:43.427 回答