如何在OS X上将Python默认版本设置为3.x?

时间:2013-08-25 03:29:49

标签: python python-3.x macos install

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

目前:

$ python
    version 2.7.5
$ python3.3
    version 3.3

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

22 个答案:

答案 0 :(得分:460)

更改系统的默认python版本会破坏一些依赖于python2的应用程序。

您可以在大多数shell中为命令添加别名,Mac OS X默认使用bash,如果您也将其放入~/.bash_profile

alias python='python3'

python命令现在指的是python3。如果你想要原始的python(引用 python2 ),你可以转义别名,即执行\python将启动 python2 ,保持别名不变“

如果您更频繁地启动口译员(我愿意),最好是:

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

提示:而不是:

#!/usr/bin/env python

使用:

#!/usr/bin/env python3

系统将使用python3运行python 可执行文件

答案 1 :(得分:94)

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

unlink /usr/local/bin/python
ln -s /usr/local/bin/python3.3 /usr/local/bin/python

答案 2 :(得分:9)

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

更新:看起来您不应该更新它:how to change default python version?

答案 3 :(得分:5)

我相信这里的大多数人都在使用ZSH或其他任何东西,这会带你到this answer

您必须在~/.zshrc中添加/修改命令。

答案 4 :(得分:5)

以下内容对我有用

cd /usr/local/bin
mv python python.old
ln -s python3 python

答案 5 :(得分:5)

转到终端类型:

alias python=python3.x

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

答案 6 :(得分:4)

打开〜/ .bash_profile 文件。

vi ~/.bash_profile

然后按如下所示放置别名:

alias python='python3'

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

source ~/.bash_profile

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

python --version

Python 3.7.3

答案 7 :(得分:4)

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

pyenv global 3.8.2

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

pyenv local 2.7.1

我认为这是在系统上管理多个python版本的最佳方法。

答案 8 :(得分:3)

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

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

module load python3.3

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

答案 9 :(得分:3)

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

以下是从〜/ .bash_profile中删除引用的方法 - vim ./.bash_profile - 删除引用(AKA类似于:export PATH =“/ Users / bla / anaconda:$ PATH”) - 保存并退出 - source ./.bash_profile保存更改

答案 10 :(得分:3)

在这个游戏上我有点晚了,但是我认为我应该发布更新的答案,因为我自己才遇到这个问题。请注意,这仅适用于基于Mac的设置(我没有在Windows或任何版本的Linux上尝试过。)

最简单的方法是通过Brew安装Python。如果您未安装brew,则需要先执行该操作。安装完成后,在终端上执行以下操作:

brew install python

这将安装Python3。安装后,运行以下命令:

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

设置后,您可以执行以下操作:

which python

,它应该显示:

/usr/local/bin/python

您必须重新加载当前的终端Shell才能在该Shell中使用新的符号链接,但是,所有新打开的Shell会话将(应该)自动使用它。要对此进行测试,请打开一个新的终端外壳并运行以下命令:

python --version

答案 11 :(得分:2)

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

安装PyCharm并转到文件==>新项目的首选项,然后为项目选择所需的解释器,在这种情况下为python 3.3

答案 12 :(得分:2)

在MacOS上

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

第2步:回家: $ cd

第3步:打开.bash_profile

$ vi .bash_profile

为Python 3.8设置PATH

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

第4步:保存文件。并通过以下方式进行编译:

$。 .bash_profile

第5步:检查python版本:

$ python -V

第6步:仅此而已。

答案 13 :(得分:1)

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

从您的终端试试这个:

brew install python3

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

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

提示:

**(记下终端上显示的python 3.8或3.9版本。下一步需要这样做)。例如就我而言,它是:

lrwxr-xr-x 1 user admin 24 May 7 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

快乐编码!

答案 14 :(得分:1)

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

brew switch python 3.x.x

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

这将更新所有系统链接。

答案 15 :(得分:1)

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

好人是您不想触摸Mac上的默认Python。

通过Homebrew或其他方式安装所需的任何Python版本,并在virtualenv中使用它。 Virtualenv通常被认为是胡扯,但还是比在系统范围内更改python版本(macOS可能会保护自己免受此类操作)或用户范围,bash范围……好得多。只需忘记默认的Python。使用venv这样的游乐场是您的操作系统最感谢的事情。

例如,情况是,许多现代Linux发行版都摆脱了现成安装的Python2,仅在系统中保留了Python3。但是每次您尝试使用python2作为依赖项安装旧版本时...希望您理解我的意思。一个好的开发者不在乎。好的开发人员可以使用他们想要的python版本创建干净的游乐场。

答案 16 :(得分:1)

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

alias python=/usr/local/bin/python3

答案 17 :(得分:1)

如果使用macports,则无需使用别名或环境变量,只需使用macports已提供的方法,此问题与解答对此进行解释:

How to: Macports select python

TL; DR:

sudo port select --set python python27

答案 18 :(得分:1)

如果您使用的是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)"

答案 19 :(得分:0)

The RIGHT and WRONG way to set Python 3 as default on a Mac

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

  1. 不该做的事。
  2. 我们应该做的(但也不应该这样做)。
  3. 我们应该做什么!

所有这些方式都有效。您决定哪个更好。

答案 20 :(得分:0)

$ sudo ln -s -f $(which python3) $(which python)

完成。

答案 21 :(得分:0)

如果您使用的是Macports,则这样做更简单:

运行:

port install python37

安装后,设置默认值:

sudo port select --set python python37

sudo port select --set python3 python37

重新启动cmd窗口,完成。