如何更改默认的Python版本?

我在我的Mac中安装了Python 3.2。 在运行/ Applications / Python 3.2 /更新Shell Profile.command后 ,我感到困惑的是,当我在terminal中键入python -V时 ,它说Python 2.6.1 ,我如何更改默认的python版本?

这可能是向后兼容的理想select。

Python3打破了向后兼容性,调用“python”的程序可能期望python2。 你可能有很多程序和脚本,你甚至都不知道哪些是python = python2,而改变它会破坏这些程序和脚本。

你可能要找的答案是你不应该改变这个

但是,您可以在您的shell中创build一个自定义别名。 你这样做取决于壳,但也许你可以做alias py=python3

如果您对如何启动最新版本的python感到困惑,至less在Linux上, python3保持python2安装不变(由于上述兼容性的原因) ; 因此你可以用python3命令启动python3。

在Mac OS X上使用python.org安装程序显然具有,您需要使用python3而不是python来调用Python 3。 这是目前保留为Python 2版本。 您也可以使用python3.2来专门调用该版本。

 $ which python /usr/bin/python $ which python3 /Library/Frameworks/Python.framework/Versions/3.2/bin/python3 $ cd /Library/Frameworks/Python.framework/Versions/3.2/bin/ $ ls -l total 384 lrwxr-xr-x 1 root admin 8 Apr 28 15:51 2to3@ -> 2to3-3.2 -rwxrwxr-x 1 root admin 140 Feb 20 11:14 2to3-3.2* lrwxr-xr-x 1 root admin 7 Apr 28 15:51 idle3@ -> idle3.2 -rwxrwxr-x 1 root admin 138 Feb 20 11:14 idle3.2* lrwxr-xr-x 1 root admin 8 Apr 28 15:51 pydoc3@ -> pydoc3.2 -rwxrwxr-x 1 root admin 123 Feb 20 11:14 pydoc3.2* -rwxrwxr-x 2 root admin 25624 Feb 20 11:14 python3* lrwxr-xr-x 1 root admin 12 Apr 28 15:51 python3-32@ -> python3.2-32 lrwxr-xr-x 1 root admin 16 Apr 28 15:51 python3-config@ -> python3.2-config -rwxrwxr-x 2 root admin 25624 Feb 20 11:14 python3.2* -rwxrwxr-x 1 root admin 13964 Feb 20 11:14 python3.2-32* lrwxr-xr-x 1 root admin 17 Apr 28 15:51 python3.2-config@ -> python3.2m-config -rwxrwxr-x 1 root admin 25784 Feb 20 11:14 python3.2m* -rwxrwxr-x 1 root admin 1865 Feb 20 11:14 python3.2m-config* lrwxr-xr-x 1 root admin 10 Apr 28 15:51 pythonw3@ -> pythonw3.2 lrwxr-xr-x 1 root admin 13 Apr 28 15:51 pythonw3-32@ -> pythonw3.2-32 -rwxrwxr-x 1 root admin 25624 Feb 20 11:14 pythonw3.2* -rwxrwxr-x 1 root admin 13964 Feb 20 11:14 pythonw3.2-32* 

如果你还从python.org安装了Python 2,它将有一个类似的框架bin目录,没有重叠的文件名(2to3除外)。

 $ open /Applications/Python\ 2.7/Update\ Shell\ Profile.command $ sh -l $ echo $PATH /Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin $ which python3 /Library/Frameworks/Python.framework/Versions/3.2/bin/python3 $ which python /Library/Frameworks/Python.framework/Versions/2.7/bin/python $ cd /Library/Frameworks/Python.framework/Versions/2.7/bin $ ls -l total 288 -rwxrwxr-x 1 root admin 150 Jul 3 2010 2to3* lrwxr-x--- 1 root admin 7 Nov 8 23:14 idle@ -> idle2.7 -rwxrwxr-x 1 root admin 138 Jul 3 2010 idle2.7* lrwxr-x--- 1 root admin 8 Nov 8 23:14 pydoc@ -> pydoc2.7 -rwxrwxr-x 1 root admin 123 Jul 3 2010 pydoc2.7* lrwxr-x--- 1 root admin 9 Nov 8 23:14 python@ -> python2.7 lrwxr-x--- 1 root admin 16 Nov 8 23:14 python-config@ -> python2.7-config -rwxrwxr-x 1 root admin 33764 Jul 3 2010 python2.7* -rwxrwxr-x 1 root admin 1663 Jul 3 2010 python2.7-config* lrwxr-x--- 1 root admin 10 Nov 8 23:14 pythonw@ -> pythonw2.7 -rwxrwxr-x 1 root admin 33764 Jul 3 2010 pythonw2.7* lrwxr-x--- 1 root admin 11 Nov 8 23:14 smtpd.py@ -> smtpd2.7.py -rwxrwxr-x 1 root admin 18272 Jul 3 2010 smtpd2.7.py* 

将Python默认放在path上的Python之前,例如:

 export PATH=/usr/local/bin:$PATH 

老问题,但另外:

 virtualenv --python=python3.5 .venv source .venv/bin/activate 

我正在使用OS X 10.7.5和Python 3.4.2。 如果你键入python3 ,你想运行它将使用python 3运行它。例如pyhton3 test001.py 。 运行了一个我称之为test001的testing程序。 我希望这有帮助。

根据Google的快速search,此更新仅适用于您打开的当前shell。 它可以通过键入python3来解决,因为mac和linux足够类似于这样的事情。 链接到谷歌search的结果。

另外,正如ninjagecko所说的,大多数程序还没有更新到3.x,所以默认的python为3.x会破坏在应用程序中使用的许多python脚本。