【问题标题】:Homebrew install libxml2 with python modulesHomebrew 使用 python 模块安装 libxml2
【发布时间】:2012-06-18 18:39:25
【问题描述】:

早上好,

我正在尝试使用 python 模块安装 libxml2。我尝试了以下方法:

brew install --with-python libxml2                                                                  
==> Downloading ftp://xmlsoft.org/libxml2/libxml2-2.8.0.tar.gz
Already downloaded: /Users/brandon/Library/Caches/Homebrew/libxml2-2.8.0.tar.gz
==> ./configure --prefix=/usr/local/Cellar/libxml2/2.8.0 --without-python

如你所见...即使有 --with-python 标志,它仍然在配置没有 python 的源代码!

在安装结束时,自制软件会说:

Generally there are no consequences of this for you.
If you build your own software and it requires this formula, you'll need
to add its lib & include paths to your build variables:

    LDFLAGS  -L/usr/local/Cellar/libxml2/2.8.0/lib
    CPPFLAGS -I/usr/local/Cellar/libxml2/2.8.0/include

当我尝试安装 gnome-doc-utils 包时:

Gnome-doc-utils requires libxml2 to be compiled
with the python modules enabled, to do so:
  $ brew install libxml2 --with-python

显然我又试了一次……

╰─ brew install libxml2 --with-python
Error: libxml2-2.8.0 already installed

我还是新手...所以任何帮助将不胜感激。

【问题讨论】:

  • 你有什么理由不使用pip(或easy_install作为最后的手段)吗?它们过去表现得比其他打包工具好得多 - 并且可以使用 virtualenv!

标签: python macos libxml2 homebrew


【解决方案1】:

首先,您无法安装 libxml2,因为您已经成功安装了它,因此您首先需要将其卸载。

brew uninstall libxml2

接下来您需要编辑 brew 公式 - 这很简单 --

类型 brew edit libxml2 换行

system "./configure", "--prefix=#{prefix}", "--without-python"

到这里:

system "./configure", "--prefix=#{prefix}", "--with-python"

这并不能解决 brew 公式的问题,但它会强制使用标志“--with-python”,因此下次您键入 brew install libxml2 时,它将安装 python 库。

如果您需要重置公式(撤消更改),只需输入brew update

【讨论】:

  • 非常感谢,这解决了我搜索了一段时间后的问题!
  • 我试过了,但 make install 失败了,*** [install-am] Error 2*** [install-recursive] Error 1
  • 如果使用瓶装版本,则在编辑 libxml2 后使用brew install --build-from-source libxml2
【解决方案2】:

有用的是在 brew 命令中使用 --with-python 安装 libxml2

brew install --with-python libxml2

【讨论】:

    【解决方案3】:

    这对我有用。如果之前已完成,请先取消链接/卸载:

    brew unlink libxml2
    brew unlink libxslt
    brew uninstall libxml2
    brew uninstall libxslt
    

    然后

    brew install --framework python
    brew install --with-python libxml2
    brew install --with-python libxslt
    brew link libxml2 --force
    brew link libxslt --force
    

    瞧!

    【讨论】:

    • 这帮助我解决了在 Beautifulsoup 中使用 lxml 解析器和安装了 brew 的 Python 版本时遇到的一些问题,谢谢!
    • 程序点:如果您尝试卸载 libxml2 before libxslt,brew 会抱怨,因为后者需要前者。切换卸载顺序对我有用
    【解决方案4】:

    kylehunt 的回答让我解决了在升级到 macOS Catalina 后运行“brew upgrade”后出现的一些问题:

    如果你碰巧看到类似的东西

    Error: libxml2: /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/libxml2.rb:53: syntax error, unexpected <<
    <<<<<<< Updated upstream
    ^~
    /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/libxml2.rb:54: syntax error, unexpected ',', expecting end
    ...              "--with-history",
    ...                              ^
    /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/libxml2.rb:55: syntax error, unexpected ',', expecting end
    ...            "--without-python",
    ...                              ^
    /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/libxml2.rb:57: syntax error, unexpected ',', expecting end
    ...               "--with-python",
    ...
    

    这意味着你应该运行

    brew edit libxml2
    

    修复配置文件,因为它可能在升级过程中被合并冲突破坏。在文件中查找

    【讨论】:

      猜你喜欢
      • 2016-06-02
      • 2013-09-27
      • 2012-04-03
      • 1970-01-01
      • 2013-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      相关资源
      最近更新 更多