抱歉“偷”了答案,但我觉得这里有点混乱。在
有不同的方法来实现这一点,这取决于在什么层次上作出决定。在
系统级
[归功于@WoLy]
使用系统的update-alternatives功能。具体来说,使用$ update-alternatives --config python
你可以选择具体的版本。在
结果:一旦您这样做,所有使用“python”的文件都将使用python2.7二进制文件。这将发生在整个系统,所有用户。在
用户级别
这有点棘手。归功于@TheFlyingProgrammer
基本方法是更改.bashrc文件,以便更改路径和/或添加别名。问题是如果您依赖于文件的“shebang”:
^{pr2}$
这种文件将不受更改的影响。但是:#!/usr/bin/env python
或者处决像$ python name_of_script.py
将使用所选的解释器(在.bashrc文件中强制使用的解释器)。在
结果:修改后的.bashrc文件的所有者将默认使用所选的解释器。但有些人的行为会有所不同。所以有点棘手。所以,要小心。在
脚本级别
[归功于@Anony Mousse]
“舍邦”方法,修改第一行。其思想是在python源文件的第一行使用完整路径:#!/usr/bin/python2.7
您可以使用python、python2或python2.7,您将或多或少地在版本中具体化。问题是如果你想让它便携。类似的方法是使用完整的版本规范,但没有路径:#!/usr/bin/env python2.7
请注意,如果PATH设置不正确,这将不起作用。这给了用户一些权力(当设置PATH时)。例如,您可以选择#!/usr/bin/env python2来强制一些python2.x风格,但可能特定的二进制文件会因用户而异。在
{13{记住,如果你不使用虚拟环境的话。在
结果:好吧,这取决于您是否使用env二进制文件。但是,在任何情况下,都是将语义放入文件中,这在许多情况下都是有意义的(例如,如果存在不兼容,则是在脚本级别)。在
执行级别
[归功于@Prune]
这是最简单的方法:$ /path/to/your/python/bin/python2.7 my_script.py
对于这个特定的执行,您可以更改将使用哪个二进制文件(Python解释器忽略shebang,因为它是一个注释)。在
结果:通过选择Python二进制文件,可以覆盖所有其他选择。非常好的测试行为的方法,但不是很容易维护或共享。在