【问题标题】:What is the recommended way to install Python3 (and subsequently, Python 4) on MacOS Catalina and above?在 MacOS Catalina 及更高版本上安装 Python3(以及随后的 Python 4)的推荐方法是什么?
【发布时间】:2021-09-04 06:57:05
【问题描述】:

我看到installing Python3 on MacOS 上有一个一般性问题,但写于 2012 年。同时,9 年后的 2021 年似乎很多事情都发生了变化,机器在 MacOS X Catalina 和 MacOS 11 Big Sur 上。特别是,在 MacOS 上安装 Python3 似乎有三种推荐的方法

  • 使用自制软件
  • pyenv(随 Homebrew 安装)
  • 使用官方 Python 安装程序

推荐使用 Homebrew:

推荐使用pyenv(随 Homebrew 安装):

推荐使用官方安装程序:

使用自制软件 如果我要使用 Homebrew,它看起来像先使用 Homebrew 安装 pyenv,然后使用 pyenv 管理多个版本的 python,似乎比使用 Homebrew 安装单独的不同版本的 python 更可取(然后可以与根据需要,virtualenvvenv 之类的东西);但是,这是否意味着我需要决定我喜欢哪种虚拟环境设置?在决定是否选择 pyenv 之前,社区似乎对 of which virtual environment tool(s) are recommended 的问题仍然存在分歧?

使用官方安装程序 我猜官方安装程序可用于安装多个版本的 python 以及 virtualenvvenv 等需要的东西。 installpython3.com 说

在 Mac 上,推荐的方法是使用官方 Python.org 安装程序。以前,包管理器 Homebrew 是一个不错的选择——它在大多数情况下都能优雅地处理软件安装和升级——但对于 Python 本身,Justin Mayer 在这篇文章中详细介绍了几个严重的问题。

以及指向 Justin Mayer post 的链接表示,当您 brew update 时,Homebrew 可能会删除您可能需要的虚拟环境依赖项。

Real Python 倾向于官方安装程序还有一个原因:

在 Homebrew 上可用的 macOS 的 Python 发行版不包括 Tkinter 模块所需的 Tcl/Tk 依赖项。 Tkinter 是用于在 Python 中开发图形用户界面的标准库模块,实际上是 Tk GUI 工具包的接口,它不是 Python 的一部分。

Homebrew 不安装 Tk GUI 工具包依赖项。相反,它依赖于您系统上安装的现有版本。 Tcl/Tk 的系统版本可能已经过时或完全丢失,可能会阻止您导入 Tkinter 模块。

【问题讨论】:

  • 很好...您可能想自己回答这个问题。别忘了水蟒。
  • 您应该担心尚未发布的内容吗?
  • @RocketNikita 谢谢,但如果有人更熟悉这些选项,我会更愿意回答。就像我个人没有尝试过 anaconda 一样,可能想分享他们的想法?
  • @CoolCloud 假设两种或多种可行方法之间没有太多其他差异,那么前向兼容性可能是一个有用的考虑因素,不是吗?
  • 我觉得安装python 4不会有太大区别

标签: python python-3.x homebrew


【解决方案1】:

如 Rocket Nikita 所指出的,安装 Python 有第 4 个选项:通过安装 Anaconda。如果安装 Anaconda,则不需要安装 Python (says this SO post)。但是,我不想安装 Anaconda 只是为了获得 Python。此外,有时我想在同一台机器上安装多个版本的 Python,我不想安装多个版本的 Anaconda 来做到这一点。另外,不知道能不能通过安装Anaconda得到特定版本的Python。

最后,我选择使用官方的 Python 安装程序。尽管我以前使用 Homebrew 在一台机器上直接安装 Python 3.8 和 3.9,并且(到目前为止)在使用 virtualenv 时没有遇到问题,但来自 installpython3.com 和 Real Python 的警告对我来说是真正的问题。我希望我的 Python 安装可靠,并且不必担心未来的 brew update 可能会弄乱虚拟环境的依赖关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-03
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    相关资源
    最近更新 更多