关于macos:如何更改默认的python版本?

how to change default python version?

我已经在Mac中安装了python 3.2。 在运行/ Applications / Python 3.2 / Update Shell Profile.command之后,令人困惑的是,当我在Terminal中键入python -V时,它表示Python 2.6.1,如何更改默认的python版本?


这可能是向后兼容所希望的。

Python3破坏了向后兼容性,并且调用" python"的程序可能希望使用python2。您可能有很多程序和脚本,甚至都不知道哪个期望python = python2,更改此设置将破坏这些程序和脚本。

您可能正在寻找的答案是您不应更改此设置。

但是,您可以在shell中创建自定义别名。这样做的方式取决于shell,但也许可以执行alias py=python3

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


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ 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除外)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$ 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 3的位置

1
2
$ which python3
/usr/local/bin/python3

在bash_profile中写别名

1
2
vi ~/.bash_profile  
alias python='/usr/local/bin/python3'

重新加载bash_profile

1
source ~/.bash_profile

确认python命令

1
2
$ python --version
Python 3.6.5


老问题,但是或者:

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


通过将"默认" Python放在您路径上的系统Python之前来进行更改,例如:

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


做正确的事,做正确的事!

--->零打开您的终端,

-首先输入python -V,它可能显示:

1
Python 2.7.10

-第二个输入python3 -V,它可能显示:

1
Python 3.7.2

-第三次输入where pythonwhich python,它可能显示:

1
/usr/bin/python

---第四个输入where python3which python3,它可能显示:

1
/usr/local/bin/python3

-第五行,在Bash的~/.profile file or ~/.bash_profile或zsh的~/.zshrc的PATH环境变量文件的底部添加以下行。

1
alias python='/usr/local/bin/python3'

要么

1
alias python=python3

-在Bash下第六次输入source ~/.bash_profile或在zsh下第六次输入source ~/.zshrc

-第七步退出终端。

---第八次打开终端,输入python -V,可能显示:

1
Python 3.7.2

我已经成功地尝试过了。

其他的,zsh下的~/.bash_profile不是那个~/.bash_profile

zsh下的PATH环境变量通过~/.zshrc代替~/.profile(或~/.bash_file)。

帮助你们!


我正在使用OS X 10.7.5和Python 3.4.2。如果键入python3并且要运行的内容将使用python 3运行它。例如
pyhton3 test001.py。那运行了我制作的名为test001的测试程序。我希望这有帮助。


根据Google的快速搜索,此更新仅适用于您打开的当前Shell。可以通过键入python3来修复它,因为mac和linux足够类似,使得类似的事情重合。链接到Google搜索的结果。

而且,正如ninjagecko所说,大多数程序尚未更新到3.x,因此将默认python设置为3.x会破坏应用程序中使用的许多python脚本。


1
2
sudo mv /usr/bin/python /usr/bin/python2
sudo ln -s $(which python3) /usr/bin/python

这将破坏脚本,但这正是更改python的方法。您还应该重写脚本以不假定python为2.x。无论您在哪里呼叫systemexec,这都将起作用。


导航:

我的电脑->属性->高级->环境变量->系统变量

假设您已经在路径变量中添加了python 2.7,并且您想将默认路径更改为python 3.x

然后在python2.7路径之前添加python3.5.x文件夹的路径。

打开cmd:键入" python --version"

python版本将更改为python 3.5.x