【问题标题】:Installing gmpy on OSX - mpc.h not found在 OSX 上安装 gmpy - 找不到 mpc.h
【发布时间】:2014-06-04 22:49:53
【问题描述】:

我有 brew installed mpcgmp ,但是当我尝试 pip install gmpy2 时,我得到一个编译错误就行了

#include "mpc.h"

所以由于某种原因clang 无法找到mpc 库。我不确定我现在应该做什么。

【问题讨论】:

  • @hd1 我看了那个帖子,但我不认为这是同样的错误。为什么会这样?
  • "mpc.h" 看起来很奇怪 - 试试<mpc.h>

标签: python clang gmp mpc


【解决方案1】:

对于 OSX 和 homebrew 用户 - 我试着做通常的舞蹈

brew install mpc
brew install mpfr

然后

python setup.py --prefix=/usr/local/Cellar

但出现错误,找不到“mpc.h”。确实,找不到 mpc.h 文件。解决方案是,使用

brew install libmpc
brew install mpfr

相反。之后 gmpy2 正在编译和安装,没有其他问题。

【讨论】:

  • 我想指出一个微妙的误解 mpc 是“用于 mpd 的命令行音乐播放器客户端”,而 libmpc 是“用于计算高精度复数的 C 库”。第二个是我们要安装的。如有犹豫,请致电 brew info
  • 这个答案应该更新为brew install libmpc,因为mpfrlibmpc 的依赖项,而mpc 不是您要查找的库。
【解决方案2】:

简短而甜蜜的 2015 年答案:

brew install mpfr
brew install libmpc
pip install gmpy2

【讨论】:

  • 刚刚尝试过,它适用于干净的 OS X Mojave 安装。 10.14.5。 brew安装mpfr和libmpc后用pip3 install --user gmpy2安装。
【解决方案3】:

我是 gmpy2 的维护者。我无法使用 Mac,因此无法测试 OSX 版本。

我假设您还安装了mpfr,因为它是mpc 的先决条件。开发文件(即gmp.hmpfr.hmpc.h)在哪里?

您可以尝试从命令行安装,而不是通过 pip 安装吗?我使用的命令类似于:

python setup.py install --prefix=/opt/local --force

此命令假定.h 文件位于/opt/local/include 中。您需要调整前缀以适合您的系统。

【讨论】:

  • 显然 .h 文件在我的系统上的任何地方都不存在,所以我通过 Google Code 上的教程从命令行安装。谢谢!
  • @JakobWeisblat 如果安装说明需要澄清或可以改进,请告诉我。
【解决方案4】:

截至 2018 年 3 月 6 日,唯一对我有用的是以下内容。 (安装在 Mac OS High Sierra 10.13.3 上,适用于 python 3.5.4)

sudo port install libmpc
sudo port install gmp
sudo pip3 install --global-option=build_ext --global-option="-I/opt/local/include/" --global-option="-L/opt/local/lib/" gmpy2

请注意,sudo port install libmpc 会自动安装 mpfr 作为依赖项。 --global-option="-I/opt/local/include/" 基本上告诉系统gmpmpcmpfr 的头文件在/opt/local/include/--global-option="-L/opt/local/lib/" 告诉系统要使用的库位于/opt/local/lib/

【讨论】:

    【解决方案5】:

    如果您使用 anaconda 或 miniconda,请从 conda-forge 安装 mpcmpfr,然后安装 gmpy

    conda install -c conda-forge mpc mpfr
    pip install gmpy2
    

    【讨论】: