26

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

4

10 回答 10

24

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

对于 Ubuntu 14.04 *信任)

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。

于 2015-03-08T03:16:24.417 回答
4

对于 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 安装 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
于 2015-12-28T17:24:17.163 回答
3

使用 Python 3.4.3+ 的 Ubuntu 15.10

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

llvmlite 的 GitHub 页面所述:

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

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

满足依赖关系:(喜欢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
于 2016-03-29T15:25:26.290 回答
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
于 2015-12-04T07:17:50.220 回答
1

对于 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

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

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

如此处所述的构建源代码:

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    
于 2016-06-02T15:12:51.657 回答
1

最初我没有得到它与这里的评论一起工作,然后我发现:1. 同时需要 llvm 3.6 而不是 3.5 和 2. 对我来说LLVM_CONFIGenv 变量不起作用。所以我像这样安装了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 上试过。)

于 2016-01-18T12:18:02.147 回答
0

对于 Ubuntu 16.04

sudo pip3 install llvmlite

明确要求 llvm 版本 3.9。

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

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

于 2017-03-22T10:35:34.993 回答
0

对于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
于 2019-04-20T07:01:06.900 回答
0

对于 Ubuntu 16.04:

LLVM_CONFIG=/usr/bin/llvm-config-3.7 pip install llvmlite
于 2016-06-07T16:40:11.880 回答
0

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

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

他们有一个兼容性表,说明什么适用于什么。所有最近的包都可以从他们的网页上获得。

于 2017-04-20T20:33:35.897 回答