【问题标题】:Why Should Homebrew be used to Install Python?为什么要使用 Homebrew 来安装 Python?
【发布时间】:2015-10-14 17:44:56
【问题描述】:

我已经阅读了很多网络上的教程和网站上关于使用Homebrew 的答案。不过,当谈到 Python 时,这个建议给我留下的问题多于答案。

我明白怎么做,但是到目前为止我所看到的答案都没有真正解释为什么使用 Homebrew 安装 Python 以及安装 Python 和 Homebrew 的好处是什么,而不是使用 Python 基金会提供的OS-X 安装程序?

来自 Python 的最新版本的安装程序和 PIP 的当前实现似乎运行良好,所以我非常感谢任何关于我的问题的意见。我使用 Python 已经有一段时间了,但更多的是从战术上解决问题的角度来看,我对Brew 等工具和Git 等版本控制软件是全新的。我正在努力提高学习曲线。找到为什么我会选择使用 Homebrew 安装而不是直接访问 python.org 并从它们下载然后使用 pip 安装包的答案可能会帮助我理解像 Homebrew 这样的工具的好处。

所以我猜,Homebrew 给了我什么,而通过 TPF 进行的安装却没有?

Homebrew 在该框架内的/Library/Frameworks/ 和site-packages 文件夹上安装Python 和Python 包有优点/缺点吗?

尽管最后一个问题过于宽泛且可能超出范围,但如果有人也能就使用 Homebrew 的一般好处提出或提供一个很好的答案的链接,我将不胜感激?

谢谢你,

【问题讨论】:

    标签: python macos installation homebrew


    【解决方案1】:

    使用像 Homebrew 这样的包管理器的一大优势是它可以更轻松地让您的 Python 安装保持最新。如果您从网站下载 Python,那么要更新它意味着您需要返回网站并下载 Python 的新副本(或者您需要更新的任何可能已与 Homebrew 一起安装的内容)。

    此外,在下载安装程序时,我发现它们往往会弄乱我的下载文件夹,并要求我定期清理未使用的文件。我宁愿花时间编码而不是管理我的磁盘空间使用情况。

    使用 Homebrew 更新任何软件包时,命令很简单:

    brew upgrade
    

    这将更新您使用 Brew 安装的所有过时软件包。

    现在,这不是 Homebrew 独有的东西。 Macports、PIP、npm、Maven 和其他包管理工具也能够管理您安装的模块或工具的版本。

    有关详细信息,请参阅Safari Books Online - Keeping Your Homebrew Up To Date。

    【讨论】:

    • 嗨@jmort253。感谢您的回复和链接。我现在正在解决它。我看到同一个作者也写了Getting Started With Homebrew所以我从那里开始。
    • 包管理器之于开源就像 Mac App Store 之于 Apple 沙盒分布式软件一样吗?
    • 一个非常松散的类比,但它仍然是一个类比。苹果商店主要包含软件或软件工具。包管理器也可以包含软件和工具,但有些管理软件项目中的依赖关系。希望这会有所帮助!
    【解决方案2】:

    this post 在 OS X 上不使用系统 python 的几个原因,

    • Apple 在使 Python 运行时环境保持最新方面并不总是做得很好,
    • 仅仅为了安装第三方 Python 库而使用权限可能很麻烦,
    • 最后,Apple 倾向于在每次主要的操作系统升级时清除您的站点包。

    对 Python 模块使用独立的包管理器,例如 Homebrew、conda、Macports 等。因此是首选。

    【讨论】:

    • 嗨@rth。感谢您的答复。是的,我理解让用户安装 Python 实例与使用 Apple 版本进行开发相比的好处,我并没有质疑这种智慧。我什至理解为什么您可能会使用诸如 EPD 或 Anaconda 之类的发行版而不是 TPF。我的问题更多的是为什么一个包管理器而不仅仅是 TPF dmg 和 PIP。我可能正试图将包管理器作为一种工具,因为我对开源开发的想法相对较新。
    • @AMR 那么你实际上是在比较一个包管理器(pip)和另一个包管理器(Homebrew)。两者都可以工作。我猜在 OS-X 上,Homebrew 在处理经典的 linux 包方面更实用。比如说,你想安装依赖于libjpeg 的枕头。如果你幸运的话,OS-X 将拥有正确的libjpeg 版本,pip install pillow 就足够了。不过,更有可能的是,它会发布一些过时的版本,您需要手动编译/安装正确版本的 libjpeg(只是一个说明)。这很快就会变得乏味,而 Homebrew 会为您自动完成。
    • 好的。因此,如果包的依赖项,比如枕头,不是 pypi 相关的包,那么 pip 不会处理这些依赖项,但是像 Homebrew 或 MacPorts 这样的不同包管理器可能会?
    • 是的,我认为这是主要区别。并不是 pip 不在乎,而是它对此无能为力。在 linux 上,apt-get 等允许您管理这些包,因此pip 足以满足所有 Python 模块。但是,在 Mac 上,如果您不想从源代码手动编译,则需要像 Homebrew 这样的包管理器来处理 Python 包的非 Python 依赖项。
    • 我在上面的cmets中犯了一个错误。它是 Python 软件基金会,其首字母缩写词是 PSF 而不是 TPF。我会编辑,但我没有得到那个选项。所以我所说的TPF,我的意思是PSF。很抱歉造成混乱。
    猜你喜欢
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 2013-08-05
    • 2012-06-18
    • 1970-01-01
    相关资源
    最近更新 更多