如何在MacOS上将Python 3.5设置为默认版本?

8

我刚刚在我的Mac电脑上安装了Python 3.5.1(运行最新版本的OSX)。我的系统已经预装了Python 2.7。当我在终端提示符下输入IDLE时,我的系统会打开原始的Python 2.7而不是新安装的Python 3.5。我该如何让系统在我从终端打开IDLE窗口时默认使用Python 3.5.1?


1
有些答案建议卸载Python2。如果在OSX上有效,那太棒了,请享用。但是,如果你使用的是Debian/Ubuntu,卸载Python2将会损坏你的机器,因为许多系统组件都期望它存在。 - msw
7个回答

14

由于Python 2和3可以在同一系统上轻松共存,因此您可以通过在命令中指定何时使用Python 3来轻松切换。

因此,在使用Idle时,您需要在终端中输入idle3以便与Python 3一起使用,而使用Python 2时应输入idle

同样地,如果您需要从终端运行脚本或到达Python提示符,则当您想要使用Python 3时应键入python3,而想要使用Python 2时应键入python


非常感谢。在终端提示符下输入idle3正是我要找的。真诚地,乔治 - user3798654

4

在开始之前,正确设置您的MacOS Python环境是个好习惯,确保Homebrew安装优先于MacOS自带的二进制文件。你需要将其放在usr/local/bin而不是MacOS默认的usr/bin

.bash_profile

# Ensure user-installed binaries take precedence
export PATH=/usr/local/bin:$PATH
# Load .bashrc if it exists
test -f ~/.bashrc && source ~/.bashrc

还可以为两者创建别名。

alias py2='python2.7'
alias py3='python3.6'

在当前会话中使文件生效,请对其进行来源调整

source ~/.bash_profile

Homebrew安装和设置等...

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew doctor
brew update
brew upgrade --all
brew cleanup

Python3安装

brew install python3

下一步
pip3 install virtualenv

下一步
pip3 install virtualenvwrapper

当所有操作完成后,python3pip3virtualenvvirtualenvwrapper.sh都会在usr/local/bin中。

结果

每次安装任何东西或使用像mkvirtualenv这样的命令时,默认使用Python 3。


3
你可以使用python3命令(而不是使用python),或者如果你不需要它,可以直接卸载2.7版本。

你好,感谢您的回复。我不太清楚如何卸载2.7版本。在哪里可以使用python3命令?为了在idle中访问Python,我只需在终端提示符下键入idle即可。 - user3798654
10
不要删除自带的 Python2.7,它是必需的。 - Roland Smith
Mac OS需要Python 2.7,并且您无法卸载它。如果2.7是使用brew或类似的工具安装的,则可能可以卸载。 - Arefe

1

通过创建虚拟环境,您可以在项目中切换到任何Python版本。

  • virtualenv -p /usr/bin/python2.x(或python 3.x)

如果您只想在特定版本中运行程序,请打开shell并输入python2.x或python3.x。


1

做正确的事情,把事情做对!

  1. 打开终端。

  2. 输入python -V,它可能会显示:Python 2.7.10

  3. 输入python3 -V,它可能会显示:Python 3.7.2

  4. 输入where pythonwhich python,它可能会显示:/usr/bin/python

  5. 输入where python3which python3,它可能会显示:/usr/local/bin/python3

  6. 在Bash下的~/.profile文件或~/.bash_profile文件,或在zsh下的~/.zshrc文件中,在PATH环境变量文件底部添加以下行。

alias python='/usr/local/bin/python3' 或者 alias python=python3

  1. 在Bash下输入源~/.bash_profile,在zsh下输入源~/.zshrc

  2. 退出终端。

  3. 打开终端,输入python -V,它可能会显示: Python 3.7.2

注意,在zsh下的~/.bash_profile不是那个~/.bash_profile。

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

希望这能帮助到大家!


请突出代码并保持答案简短明了,谢谢。 - TheParam

1
如果您没有使用的Python 2脚本,可以删除Python 2。但是同时安装两个版本也不是问题。您只需要使用另一条路径python3来启动IDLE即可。
我更喜欢同时安装两个版本,这样如果您有任何Python 2脚本,仍然可以运行它们,或者您必须将它们移植到Python 3。

你好,感谢您的回复。我该如何使用另一个路径的Python3来启动IDLE呢?谢谢,George。 - user3798654
因为我必须出于无聊的原因同时使用 alias p2=/path/to/python2alias p3,在 ~/.bashrc~/.bash_aliases 中使用它们是明确且节省输入的。我也喜欢ipython,所以ip2ip3也是别名。 - msw
我不理解你的帖子。能否请你详细解释一下?谢谢,George - user3798654

0
通过输入 python,实际上是在引用一个链接。 你可以通过 $ which python 找到它的位置。在我的情况下,它是 /usr/local/bin/python。前往那里 $open /usr/local/bin/,然后只需删除原始的 python、python-config 和 idle,因为它们与同一文件夹中的 2.7 文件相同。 然后复制 3.5 文件并将它们重命名为刚才删除的文件名。
这也会更改其他编辑器(如 Sublime_ReplPython)使用的默认链接,并因此更新到 3.5 版本。这是我对标准安装的主要关注点。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接