432

我正在运行 Mountain Lion,基本的默认 Python 版本是 2.7。我下载了 Python 3.3 并想将其设置为默认值。

目前:

$ python
    version 2.7.5
$ python3.3
    version 3.3

如何设置它以便每次运行$ python时打开 3.3?

4

22 回答 22

633

在系统范围内更改默认 python 可执行文件的版本可能会破坏一些依赖于 python2 的应用程序。

但是,您可以在大多数 shell 中为命令设置别名,因为 macOS 中的默认 shell(10.14 及更低版本中的 bash;10.15 中的 zsh)共享类似的语法。您可以放入 alias python='python3' 您的~/.profile, 然后~/.profile在您的~/.bash_profile和/或您~/.zsh_profile的源中输入如下行:

[ -e ~/.profile ] && . ~/.profile

这样,您的别名将跨 shell 工作。

有了这个,python命令现在调用python3. 如果你想偶尔调用“原始”python(指的是python2),你可以使用command python,这将使别名保持不变,并在所有 shell 中工作。

如果您更频繁地启动解释器(我愿意),您始终可以创建更多别名来添加,即:

alias 2='python2'
alias 3='python3'

提示:对于脚本,不要使用 shebang,例如:

#!/usr/bin/env python

利用:

#!/usr/bin/env python3

这样,系统将使用 python3 来运行 python可执行文件

于 2013-08-25T04:06:41.193 回答
187

您可以通过符号链接解决它。

unlink /usr/local/bin/python
ln -s /usr/local/bin/python3.3 /usr/local/bin/python
于 2016-08-06T15:49:26.600 回答
111

打开~/.bash_profile文件。

vi ~/.bash_profile

然后把别名如下:

alias python='python3'

现在保存文件,然后运行​​~/.bash_profile文件。

source ~/.bash_profile

恭喜!!!现在,您可以通过键入python来使用 python3 。

python --version

蟒蛇 3.7.3

于 2019-04-05T15:05:18.787 回答
84

我也遇到了这个问题,所以我想我应该发布一个更新的答案。请注意,这仅适用于基于 Mac 的设置(我没有在 Windows 或任何版本的 Linux 上尝试过)。最简单的方法是通过Brew安装 Python 。如果您没有安装 brew,则需要先安装。安装后,在终端执行以下操作:

brew install python

这将安装 Python 3。安装后,运行:

ls -l /usr/local/bin/python*

您将看到 brew 创建到其 Python 安装的所有链接。它看起来像这样:

lrwxr-xr-x  1 username  admin  36 Oct  1 13:35 /usr/local/bin/python3@ -> ../Cellar/python/3.7.4_1/bin/python3
lrwxr-xr-x  1 username  admin  43 Oct  1 13:35 /usr/local/bin/python3-config@ -> ../Cellar/python/3.7.4_1/bin/python3-config
lrwxr-xr-x  1 username  admin  38 Oct  1 13:35 /usr/local/bin/python3.7@ -> ../Cellar/python/3.7.4_1/bin/python3.7
lrwxr-xr-x  1 username  admin  45 Oct  1 13:35 /usr/local/bin/python3.7-config@ -> ../Cellar/python/3.7.4_1/bin/python3.7-config
lrwxr-xr-x  1 username  admin  39 Oct  1 13:35 /usr/local/bin/python3.7m@ -> ../Cellar/python/3.7.4_1/bin/python3.7m
lrwxr-xr-x  1 username  admin  46 Oct  1 13:35 /usr/local/bin/python3.7m-config@ -> ../Cellar/python/3.7.4_1/bin/python3.7m-config

此示例中的第一行显示python3符号链接。要将其设置为默认python符号链接,请运行以下命令:

ln -s -f /usr/local/bin/python3 /usr/local/bin/python

您必须重新加载当前的终端 shell 才能使用该 shell 中的新符号链接。运行这个命令来重新加载你的 shell:

exec $SHELL -l

你现在都准备好了。现在,您可以执行以下操作:

which python

它应该显示:

/usr/local/bin/python

所有新打开的 shell 会话将(应该)自动使用新的符号链接。要对此进行测试,请打开一个新的终端 shell 并运行以下命令:

python --version
于 2019-10-01T19:08:28.980 回答
32

转到终端类型:

alias python=python3.x

这会将默认 python 设置为 python3.x

于 2019-01-17T09:39:32.733 回答
19

这对我有用。我添加了别名并重新启动了我的终端

alias python=/usr/local/bin/python3
于 2019-07-01T19:39:06.040 回答
15

以下对我有用

cd /usr/local/bin
mv python python.old
ln -s python3 python
于 2019-01-05T20:58:17.643 回答
12

转到“应用程序”,进入“Python”文件夹,应该有一个名为“更新 Shell Profile.command”或类似的 bash 脚本。运行该脚本,它应该这样做。

更新:看起来你不应该更新它:如何更改默认 python 版本?

于 2013-08-25T03:32:21.670 回答
8

我相信大多数登陆这里的人都通过 iterm 或其他方式使用 ZSH,这让你得到了这个答案

您必须添加/修改您的命令~/.zshrc

于 2018-03-01T14:42:56.880 回答
7
$ sudo ln -s -f $(which python3) $(which python)

完毕。

于 2019-12-30T20:56:05.150 回答
6

将 python 别名为 python3 的建议将导致设置 python 版本的虚拟环境出现问题(例如:pyenv)。使用 pyenv,您可以像这样全局设置版本:

pyenv global 3.8.2

然后在任何特定项目中,您可以创建一个 .python-version 文件,其中包含 python 版本:

pyenv local 2.7.1

在我看来,这是在系统上管理多个 python 版本的最佳方式。

于 2020-06-11T14:49:00.693 回答
5

Mac 用户只需要在终端上运行以下代码

brew switch python 3.X.X

3.xx应该是新的 python 版本。

这将更新所有系统链接。

更新

对于较新版本的 MAC 使用

brew link python 3.X.X
于 2020-05-02T13:57:59.237 回答
5

在 Mac 上将 Python 3 设置为默认值的正确和错误方法

在本文中,作者讨论了三种设置默认 python 的方法:

  1. 不该做什么。
  2. 我们可以做什么(但也不应该)。
  3. 我们应该做什么!

所有这些方法都有效。你决定哪个更好。

于 2019-10-25T06:38:34.913 回答
3

我认为当您安装 python 时,它会将导出路径语句放入您的 ~/.bash_profile 文件中。因此,如果您不打算再使用 Python 2,您可以从那里删除该语句。如上所述的别名也是一种很好的方法。

以下是如何从 ~/.bash_profile - vim ./.bash_profile - 删除引用(AKA 类似于:export PATH="/Users/bla/anaconda:$PATH") - 保存并退出 - source ./ .bash_profile 保存更改

于 2015-04-10T19:28:09.933 回答
3

在 MacOS 上

第 1 步:通过以下方式将 python 升级到最新版本:$ brew upgrade python

步骤 2:回家:$ cd

第三步:打开 .bash_profile

$ vi .bash_profile

为 Python 3.8 设置 PATH

PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}" 导出路径

第四步:保存文件。并通过以下方式编译它:

$ . .bash_profile

Step-5:检查python版本:

$蟒蛇-V

第6步:就是这样。

于 2020-07-09T17:07:19.570 回答
2

我不确定这在 OS X 上是否可用,但在 linux 上我会使用该module命令。 见这里

正确设置模块文件,然后将类似这样的内容添加到您的 rc 文件(例如 ~/.bashrc):

module load python3.3

这将使您在登录时根据需要切换路径,而不会影响任何系统默认值。

于 2013-08-25T05:31:03.537 回答
2

如果您使用 macports,则不需要使用别名或环境变量,只需使用 macports 已经提供的方法,此问答对此进行了解释:

如何:Macports 选择 python

TL;博士:

sudo port select --set python python27
于 2019-04-10T03:28:26.547 回答
2

这是我的 exp 中最简单的方法。(如果您的 Mac 上安装了 brew)。

从你的终端试试这个:

brew install python3

然后在您的终端上运行以下命令:

ls -l /usr/local/bin/python*

小费:

**(记下终端上显示的 python 版本 3.8 或 3.9。这将在下一步中需要)。例如,在我的情况下是:

lrwxr-xr-x 1 用户管理员 5 月 7 日 24 日 14:33 /usr/local/bin/python -> /usr/local/bin/python3.9

现在在您的终端上运行以下命令:

ln -s -f /usr/local/bin/python3.9 /usr/local/bin/python

(其中 3.9 是使用上一个命令在终端上显示的版本)

完成 !

要测试您的默认 python 版本:

  1. 关闭当前终端或启动一个新终端并
  2. 运行以下命令:

python --version

快乐编码!

于 2021-05-07T12:58:16.217 回答
2

对我来说,解决方案是使用 PyCharm 并将默认 python 版本设置为我需要使用的版本。

安装 PyCharm 并转到新项目的文件 ==> 首选项,然后为项目选择所需的解释器,在本例中为 python 3.3

于 2019-02-12T13:21:03.010 回答
1

如果您使用的是 macports,则有一种更简单的方法:

跑:

port install python37

安装后,设置默认值:

sudo port select --set python python37

sudo port select --set python3 python37

重启你的cmd窗口,完成。

于 2019-07-15T10:40:20.010 回答
1

如果您使用的是 a virtualenvwrapper,您可以使用 找到它which virtualenvwrapper.sh,然后使用或任何其他编辑器打开它,vim然后更改以下内容

# Locate the global Python where virtualenvwrapper is installed.
if [ "${VIRTUALENVWRAPPER_PYTHON:-}" = "" ]
then
    VIRTUALENVWRAPPER_PYTHON="$(command \which python)"
fi

将行更改VIRTUALENVWRAPPER_PYTHON="$(command \which python)"VIRTUALENVWRAPPER_PYTHON="$(command \which python3)"

于 2018-07-17T19:23:48.570 回答
1

嗯……有点老了。但仍然值得一个好的答案。

好的是你不想在 Mac 上触摸默认的 Python。

通过 Homebrew 或其他任何方式安装您需要的任何 Python 版本并在 virtualenv 中使用它。Virtualenv 通常被认为是类似垃圾的东西,但它仍然比在系统范围内更改 python 版本(macOS 可能会保护自己免受此类操作)或用户范围内、bash 范围内......任何方式更好。忘记默认的 Python。使用像 venv 这样的 Playground 是你的操作系统最值得感谢的地方。

例如,许多现代 Linux 发行版摆脱了开箱即用的 Python2,只在系统中留下 Python3。但是每次您尝试使用 python2 作为依赖项安装旧的东西时...希望您理解我的意思。一个好的开发人员不在乎。优秀的开发人员使用他们想要的 Python 版本创建干净的 Playground。

于 2019-10-02T11:35:20.340 回答