使用 virtualenv 在集群(Compute Canada)上安装 Numba

Installing Numba on a Cluster (Compute Canada) using virtualenv

我正在尝试在集群上安装 Numba,这样我就可以在上面 运行 我的 Jitted python 代码。但是,当我尝试导入 Numba 时,我一直 运行ning 出现“libllvmlite.so”错误。这是使用 virtualenv 在 Cedar 集群上完成的。 Numba 是使用 pip 安装的(也尝试过 pip3)。

我开始使用(...是我的环境文件夹的目录)激活我的环境: source ~/.../ENV/bin/activate。 然后我使用 pip 安装 Numba(我也尝试过使用 pip uninstall 删除并重新安装 Numba)。 但是,当我在我的环境中加载 Python 3.7.0 时,每当我尝试导入 Numba 时都会收到错误消息。

我使用 pip show 检查版本:Python 3.7.0,Numba 0.53.1,llvmlite 0.36.0。

这是我的终端的输出:

(ENV) [04:12:46] patrick7@cedar1 > [~/projects/def-mann/patrick7/diffusioncluster]python
Python 3.7.0 (default, Sep 25 2018, 18:19:16)
[GCC 5.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numba
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/patrick7/projects/def-mann/patrick7/diffusioncluster/ENV/lib/python3.7/site-packages/numba/__init__.py", line 19, in <module>
    from numba.core import config
  File "/home/patrick7/projects/def-mann/patrick7/diffusioncluster/ENV/lib/python3.7/site-packages/numba/core/config.py", line 16, in <module>
    import llvmlite.binding as ll
  File "/home/patrick7/projects/def-mann/patrick7/diffusioncluster/ENV/lib/python3.7/site-packages/llvmlite/binding/__init__.py", line 4, in <module>
    from .dylib import *
  File "/home/patrick7/projects/def-mann/patrick7/diffusioncluster/ENV/lib/python3.7/site-packages/llvmlite/binding/dylib.py", line 3, in <module>
    from llvmlite.binding import ffi
  File "/home/patrick7/projects/def-mann/patrick7/diffusioncluster/ENV/lib/python3.7/site-packages/llvmlite/binding/ffi.py", line 191, in <module>
    raise OSError("Could not load shared object file: {}".format(_lib_name))
OSError: Could not load shared object file: libllvmlite.so

我尝试了网上找到的其他解决方案(重新安装,尝试不同版本...),目前 none 有效。任何帮助将不胜感激!谢谢!

我找到了解决问题的方法。

我尝试过但没有奏效的方法:

  • 手动使用 pip 安装 llvmlite
  • 降级到 Numba 版本 0.43,因为它是与 Python 3.7
  • 兼容的最旧版本
  • 将 Pip 升级到最新版本后卸载(llvmlite numpy 和 numba)并重新安装 Numba(自动安装它的依赖项)

有效的方法:

  • 正在将 Python 从 3.7.0 升级到 3.7.10

似乎 Python 版本 >= 3.7.3,默认命令 pip install numba 完美运行!

感谢阅读!