【问题标题】:Error installing Numba on OS X在 OS X 上安装 Numba 时出错
【发布时间】:2016-07-22 23:58:31
【问题描述】:

我无法在我的 OS X 系统上安装 Numba(通过 pip)。

我正在使用

  • Python:2.7.11(自制)
  • 点数:8.1.1
  • 设置工具:20.6.7
  • OS X:10.11.4 (x86_64)
  • Xcode:7.3
  • Xcode CLT:7.3.0.0.1.1457485338
  • Clang:7.3 构建 703

并且已经安装了先决条件(我认为)

brew install llvm
git clone https://github.com/numba/llvmlite
cd llvmlite
LLVM_CONFIG=/usr/local/opt/llvm/bin/llvm-config  python setup.py install
cd ..
rm -rf llvmlite

也试过了

brew install llvm
brew link --force llvm  # later: brew unlink llvm
cd /usr/local/Cellar/llvm/X.X.X/include/llvm/Config/ # X.X.X = 3.6.2
ln -s llvm-config.h config.h

然后我

pip install numba

给予

  Failed building wheel for llvmlite
  Running setup.py clean for llvmlite
Successfully built numba
Failed to build llvmlite
Installing collected packages: llvmlite, numba
  Running setup.py install for llvmlite ... 
  [...]        
    error: option --single-version-externally-managed not recognized

    ----------------------------------------
Command "/usr/local/opt/python/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/private/var/folders/b6/3rk65h797p7407x7d36sqn9c0000gn/T/pip-build-MY_vtC/llvmlite/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/b6/3rk65h797p7407x7d36sqn9c0000gn/T/pip-yoGGZY-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/b6/3rk65h797p7407x7d36sqn9c0000gn/T/pip-build-MY_vtC/llvmlite/

我对如何继续(没有 Conda!)感到困惑,想知道我是否缺少一些简单的修复。

【问题讨论】:

  • 你试过with the --egg option吗?
  • @alecxe:同样的错误。并且没有理由应该是最新设置工具的问题,不是吗?
  • 你试过 conda 吗?它通常更简单。
  • @B.M.:这从文档中很清楚,但我不使用 Conda(目前)并且需要没有它的解决方案。
  • 如错误所说,您可以尝试设置LLVM_CONFIG。如果你是通过 homebrew 安装的 llvm,默认路径是/usr/local/opt/llvm/bin/llvm-config

标签: python osx-elcapitan numba


【解决方案1】:

这对我有用(在 OS X 10.11.4 上使用 Homebrew Python):

brew install homebrew/versions/llvm37 --with-rtti
git clone https://github.com/numba/llvmlite
cd llvmlite
LLVM_CONFIG=/usr/local/Cellar/llvm37/3.7.1/bin/llvm-config-3.7 python setup.py install
LLVM_CONFIG=/usr/local/Cellar/llvm37/3.7.1/bin/llvm-config-3.7 pip install numba
rm -rf llvmlite

【讨论】:

  • 就我而言,它说需要 llvm 3.8.x。所以我使用了brew install homebrew/versions/llvm38 --with-rttiLLVM_CONFIG=/usr/local/Cellar/llvm38/3.8.0/bin/llvm-config-3.8 python setup.py install 等。但是解决方案是一样的,谢谢。
【解决方案2】:

或者你可以使用自制软件:

brew install homebrew/python/numba

【讨论】:

    【解决方案3】:

    最简单的方法是安装miniconda而不是这样做:

    conda install numba
    

    在 Mac(和其他平台)上完美运行。

    我建议先创建一个新环境:

    conda create -n my_numba_env
    

    激活它:

    source activate my_numba_env
    

    并安装 numba:

    conda install numba
    

    【讨论】:

    • 没有康达。 mimonda 能否与 Homebrew(和 Homebrew Python?)以及使用 (Homebrew) pip 安装的 Anaconda 堆栈的一部分一起工作?
    • 我知道我总是可以创建新环境来解决任何安装问题。在这些情况下,这不是(我认为)问题。
    • 我发现创建一个新环境是一段更安全的时光。不用担心破坏任何东西。支付几 MB 的磁盘空间是一个很好的折衷方案。
    • 是的,这是众所周知的。但它设置了无限的倒退。如果解决方案涉及 Conda(如上所述)或设置新环境(解决每个问题),该怎么办?
    • Can I install Conda (as miniconda) inside a regular virtualenv 并期望它将所有东西都留在 virtualenv 之外?
    猜你喜欢
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    • 2011-05-16
    • 2015-01-20
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多