【问题标题】:Will Anaconda Python config scripts clash with Homebrew's?Anaconda Python 配置脚本会与 Homebrew 冲突吗?
【发布时间】:2015-06-08 07:07:57
【问题描述】:

Anaconda Python 配置脚本会与 Homebrew 冲突吗?请注意,我不会在我的任何工作流程中使用这些配置脚本,我只是想知道这些配置脚本中的任何一个是否可能被称为“幕后”。下面的示例输出(用户名替换为“..”):

$ brew doctor
...
Having additional scripts in your path can confuse software installed via

如果配置脚本覆盖系统或 Homebrew 提供的 Homebrew 同名脚本。我们发现了以下“配置”脚本:

  /Users/../anaconda/bin/curl-config
  /Users/../anaconda/bin/freetype-config
  /Users/../anaconda/bin/libdynd-config
  /Users/../anaconda/bin/libpng-config
  /Users/../anaconda/bin/libpng15-config
  /Users/../anaconda/bin/llvm-config
  /Users/../anaconda/bin/python-config
  /Users/../anaconda/bin/python2-config
  /Users/../anaconda/bin/python2.7-config
  /Users/../anaconda/bin/xml2-config
  /Users/../anaconda/bin/xslt-config

显然,其中一些与一些 Homebrew 安装的软件包发生冲突。

$ ls /usr/local/bin/*-config
/usr/local/bin/Magick++-config   /usr/local/bin/libpng-config
/usr/local/bin/Magick-config     /usr/local/bin/libpng16-config
/usr/local/bin/MagickCore-config /usr/local/bin/pcre-config
/usr/local/bin/MagickWand-config /usr/local/bin/pkg-config
/usr/local/bin/Wand-config       /usr/local/bin/python-config
/usr/local/bin/freetype-config   /usr/local/bin/python2-config
/usr/local/bin/gdlib-config      /usr/local/bin/python2.7-config

【问题讨论】:

    标签: python homebrew


    【解决方案1】:

    这样的冲突是完全可能的。当您使用 Homebrew 安装依赖于 Python 的软件时,您希望它看到通过 Homebrew 安装的 Python 包和库,而不是由 Anaconda 安装的那些。

    我的解决方案是不放

    export PATH=$HOME/anaconda/bin:$PATH
    

    进入.bashrc。通常,您只需使用通过 Homebrew 安装的 Python 和 pip 以及由 pip 安装的软件包。有时候,在开发 Python 项目时,方便使用 Anaconda 的environment management mechanismconda create -n my-env),可以临时做export PATH=$HOME/anaconda/bin:$PATH 开启。根据我收集到的信息,与使用常规 Python 相比,使用 Anaconda 的一个重要好处是 conda create -n my-env anaconda 不会像 virtualenv my-env 在拥有大量虚拟环境时那样不必要地重复软件包安装。如果你不介意有一定程度的重复,你可以避免一起安装 Anaconda,直接使用virtualenv

    【讨论】:

      【解决方案2】:

      您完全有可能不会注意到任何问题。另一方面,你可能有一些非常令人沮丧的事情。这完全取决于您使用什么以及您的$PATH 是如何订购的。 Homebrew 将采用您的$PATH 中具有优先权的任何文件;如果另一个 Homebrew 软件包需要使用 Homebrew 安装的配置文件并且它首先看到 Anaconda 版本,那么它不知道使用错误的版本更好。从某种意义上说,这就是你告诉它要做的。

      我的建议是保持简单和干净。除非您有特殊原因将 Anaconda 保留在您的 $PATH 上,否则您可能应该将其弹出并 alias 任何您需要的东西。或者,您可以通过 Homebrew 安装您需要的东西(例如,numpy)并完全消除 Anaconda。 (实际上,真的我会这样做。Anaconda 提供的东西比我没有理由倾倒在我的机器上的东西要多得多。)

      我不知道你的 $PATH 是什么样的,但根据我的经验,保持简短和系统有很多优势。

      【讨论】:

      • 只有在构建一个指定对 :python 的依赖项的包时才适用,这会将 Anaconda 的 bin 目录添加到 Homebrew 隔离环境中的 PATH 中。在这种情况下,您可能会遇到冲突。大多数软件包都不会遇到这种情况。
      猜你喜欢
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      • 2016-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-09
      相关资源
      最近更新 更多