【问题标题】:Getting python Numba working on Ubuntu 14.10 or Fedora 21 with python 2.7使用 python 2.7 让 python Numba 在 Ubuntu 14.10 或 Fedora 21 上工作
【发布时间】:2015-05-01 04:40:19
【问题描述】:

最近,我在让 python Numba 在 Ubuntu 或 Fedora Linux 上运行时遇到了令人沮丧的事情。主要问题在于 llvmlite 的编译。我需要安装什么才能正确编译?

【问题讨论】:

  • 非常感谢您的这篇文章。几天前我问了一个关于这个的问题,但我没有回答(在 askubuntu 上)。我将在 10 小时内试用您的解决方案,并让您知道它是否适用于我的 Ubuntu
  • 我希望能邀请您共进晚餐。你真的把我从死亡中救了出来。非常感谢您提供这个在任何地方都不存在的解决方案。

标签: linux python-2.7 fedora numba ubuntu-14.10


【解决方案1】:

我最后得到的版本是 numba-0.17.0(也是 0.18.2)和 llvmlite-0.2.2(也是 0.4.0)。以下是 Ubuntu 和 Fedora 上的相关依赖项和配置选项。

适用于 Ubuntu 14.04 *Trusty)

sudo apt-get install zlib1g zlib1g-dev libedit libedit-dev llvm-3.8 llvm-3.8-dev llvm-dev
sudo pip install enum34 funcsigs
LLVM_CONFIG=/usr/bin/llvm-config-3.8 pip install llvmlite --user
LLVM_CONFIG=/usr/bin/llvm-config-3.8 pip install numba --user

适用于 Ubuntu 14.10

sudo apt-get install zlib1g zlib1g-dev libedit libedit-dev llvm-3.5 llvm-3.5-dev llvm-dev
pip install enum34 funcsigs
LLVM_CONFIG=/usr/bin/llvm-config-3.5 pip install llvmlite
LLVM_CONFIG=/usr/bin/llvm-config-3.5 pip install numba

适用于 Ubuntu 15.04

sudo apt-get install zlib1g zlib1g-dev libedit2 libedit-dev llvm-3.6 llvm-3.6-dev llvm-dev
pip install enum34 funcsigs
LLVM_CONFIG=/usr/bin/llvm-config-3.6 pip install llvmlite
LLVM_CONFIG=/usr/bin/llvm-config-3.6 pip install numba

对于 Fedora 21

yum install zlib zlib-devel libstdc++-devel libstdc++ libstdc++-static llvm-3.5.0 llvm-devel-3.5.0 libedit libedit-devel
pip install enum34 funcsigs
LLVM_CONFIG=/usr/bin/llvm-config pip install llvmlite
LLVM_CONFIG=/usr/bin/llvm-config pip install numba

注意:这最初是由 OP 在问题中发布的——移到此处以使其适合 SO。

【讨论】:

  • 一些库名称对于 Ubuntu 14.04 有点不同。更新命令以将它们包括在下面: sudo apt-get install zlib1g zlib1g-dev libedit2 libedit-dev llvm-3.5 llvm-3.5-dev llvm-dev sudo pip install enum34 funcsigs sudo LLVM_CONFIG=/usr/bin/llvm-config-3.5 pip install llvmlite sudo LLVM_CONFIG=/usr/bin/llvm-config-3.5 pip install numba
  • 有谁知道如何在 Ubuntu 15.04 上使用它?我尝试了上面的 14.10 指令,但在“pip install llvmlite”时仍然失败
  • 这也不适用于 Ubuntu 12.04。卡在 llvmlite 的编译中 :(
  • 对于 Ubuntu 15.04,我从 llvm 3.5 切换到 llvm 3.6,一切似乎都正常。因此,例如,改为运行“LLVM_CONFIG=/usr/bin/llvm-config-3.6 pip install llvmlite”。
【解决方案2】:

llvmlite 发生了变化。由于需要 llvmlite-0.6.0 llvm-3.6 版本。现在正确的安装是:

sudo apt-get install zlib1g zlib1g-dev libedit2 libedit-dev llvm-3.6 llvm-3.6-dev llvm-dev
pip install enum34 funcsigs
LLVM_CONFIG=/usr/bin/llvm-config-3.6 pip install llvmlite
LLVM_CONFIG=/usr/bin/llvm-config-3.6 pip install numba

【讨论】:

    【解决方案3】:

    对于 ubuntu 15.10

    首先检查 pip 的版本是否正确:

    pip install --upgrade pip
    pip install --upgrade wheel
    

    点 >= 8.1

    $ pip --version
    pip 8.1.1 from
    $ wheel version
    wheel 0.29.0
    

    apt-get install llvm 东西:

    sudo apt-get install zlib1g zlib1g-dev libedit2 libedit-dev
    sudo apt-get install llvm-3.7 llvm-3.7-dev llvm-dev
    

    然后使用 pip(警告 llvmlite 仅适用于 llvm 3.7):

    pip install enum34 funcsigs
    LLVM_CONFIG=/usr/bin/llvm-config-3.7 pip install llvmlite
    LLVM_CONFIG=/usr/bin/llvm-config-3.7 pip install numba
    

    【讨论】:

    • 这也适用于 16.04。就我而言,我使用了 python 2.7 和 llvm 3.8(与 llvmlite 0.13 兼容)。
    【解决方案4】:

    最初我没有在这里使用 cmets,然后我发现:1. 同时需要 llvm 3.6 而不是 3.5,2. 对我来说,LLVM_CONFIG env 变量不起作用。所以我像这样安装了numba:

    sudo apt-get install zlib1g zlib1g-dev libedit-dev llvm-3.6 llvm-3.6-dev llvm-3.6-runtime llvm-3.6-tools
    sudo pip install enum34 funcsigs
    sudo mv /usr/bin/llvm-config /usr/bin/llvm-config_bak
    sudo ln -s /usr/bin/llvm-config-3.6 /usr/bin/llvm-config
    sudo pip install llvmlite
    sudo pip install numba
    sudo mv /usr/bin/llvm-config_bak /usr/bin/llvm-config
    

    (在 Ubuntu 14.04 上试过。)

    【讨论】:

    • 不幸的是它对我不起作用。在所有情况下,当我尝试通过pip 安装llvmlite 时,它都会以error: option --single-version-externally-managed not recognized 失败。任何想法?到目前为止,我在过去 4 小时内一直在尝试安装 numba,但没有成功。
    【解决方案5】:

    Ubuntu 15.10 使用 Python 3.4.3+

    llvmlite 0.9 或更高版本(我安装的是 0.10)

    llvmlite's GitHub Page中所述:

    从 0.9 版开始,llvmlite 需要 LLVM 3.7。它不支持更早或更高版本的 LLVM。

    我的解决方案,类似于其他答案中的解决方案(但关于 python3):

    the dependencies 见面:(如libedit 和压缩库)

    sudo apt-get install zlib1g zlib1g-dev libedit2 libedit-dev
    sudo pip3 install enum34 funcsigs
    

    llvm-3.7(其他答案包括 llvm 包,现在安装的是 3.6 版,不工作)

    sudo apt-get install llvm-3.7 llvm-3.7-dev llvm-3.7-runtime llvm-3.7-tools
    

    尝试从 pip 安装 llvmlite

    sudo pip3 install llvmlite
    

    (如果有效,请跳过) 如果它不起作用,就像我的情况一样,从他们的存储库构建最后一个主分支:

    git clone https://github.com/numba/llvmlite
    cd llvmlite/
    sudo ch -c "LLVM_CONFIG=/usr/bin/config-3.7 python3 setup.py build
    sudo sh -c "LLVM_CONFIG=/usr/bin/llvm-config-3.7 python3 setup.py install"
    

    最后,安装numba

    sudo pip3 install numba
    

    【讨论】:

    • 我不确定,但问题清楚地说明了使用 phyton 2.7 你还有一个巨大的格式(粗体...)问题。
    • @cramopy 我为 Python3 提供了我的解决方案,因为我遇到了同样的问题,并且没有任何其他关于它的 stackoverflow 问题。对于 python 2.7 的情况,使用 pippython 而不是 pip3python3。很抱歉格式不好。认为它可以为未来用户的故障排除提供一些视觉帮助。同时,我找到了this guide 来改善我在这里的体验。 (第一次我回答了一些问题)
    • ch 在示例中应为 sh
    • 错字:应该是sudo sh -c "LLVM... 而不是sudo ch -c "LLVM...
    【解决方案6】:

    对于 Fedora 23

    首先检查您是否拥有最新的pip 版本:

    pip install -U pip
    pip install -U wheel
    

    然后安装以下软件包:

    dnf install zlib zlib-devel libstdc++-devel libstdc++ libstdc++-static llvm-3.7.0 llvm-devel-3.7.0 libedit libedit-devel
    pip install enum34 funcsigs
    

    然后从 GIT 存储库下载并解压缩 llvmlite。假设你正在下载到/usr/local/llvmlite 那么:

    git clone <address-for-llvmlite.git> /usr/local/llvmlite
    cd /usr/local/llvmlite
    

    按照here 所述构建源代码:

    LLVM_CONFIG=/usr/bin/llvm-config python setupy.py build
    

    刷新终端会话并安装内置llvmlite

    reset
    LLVM_CONFIG=/usr/bin/llvm-config python setup.py install
    

    最后通过

    下载安装numba
    pip install numba    
    

    【讨论】:

      【解决方案7】:

      对于 Ubuntu 16.04:

      LLVM_CONFIG=/usr/bin/llvm-config-3.7 pip install llvmlite
      

      【讨论】:

      • 这不起作用。它明确抱怨需要 3.9
      【解决方案8】:

      适用于 Ubuntu 16.04

      sudo pip3 install llvmlite
      

      明确请求 llvm 版本 3.9。

      但在官方包中,(目前)只有 llvm 到 3.8 版。 解决方法是像this一样安装

      然后你可以运行LLVM_CONFIG=/usr/bin/llvm-config-3.9 sudo pip3 install llvmlite

      【讨论】:

        【解决方案9】:

        如果其他人最近遇到这个问题,根据他们的github page...

        "llvmlite 适用于 Python 2.7 和 Python 3.4 或更高版本。 从 0.17.0 版开始,llvmlite 需要 LLVM 4.0。它不支持更早或更高版本的 LLVM。

        他们有一个兼容性表,说明什么与什么一起工作。所有最近的包都可以从their webpage.获得

        【讨论】:

          【解决方案10】:

          对于 Ubuntu 14.04,我设法安装了这个:

          export LDFLAGS="-std=gnu++11 -fPIC"
          
          LLVM_CONFIG=/usr/bin/llvm-config-7 pip install llvmlite
          
          LLVM_CONFIG=/usr/bin/llvm-config-7 pip install numba
          

          【讨论】:

            猜你喜欢
            • 2015-05-28
            • 1970-01-01
            • 1970-01-01
            • 2023-04-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-04-01
            相关资源
            最近更新 更多