微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决使用 virtualenv 在集群Compute Canada上安装 Numba

我正在尝试在集群上安装 Numba,这样我就可以在那里运行我的 Jitted python 代码。但是,当我尝试导入 Numba 时,我一直遇到“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

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

解决方法

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

我尝试过但没有用的:

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

什么有效:

  • 将 Python 从 3.7.0 升级到 3.7.10

似乎对于 Python 版本 >= 3.7.3,默认命令 #Connect MongoDB MONGODB_URI = #PORT LISTEN PORT = 8080 #nodemailer config ADMIN_EMAIL = ADMIN_EMAIL_PASSWORD = PORT_SEND_MAIL = #Json web token value JWT_SECRET= #Google OAuth token GOOGLE_CLIENT_ID = GOOGLE_CLIENT_SECRET = #Facebook OAuth token FACEBOOK_CLIENT_ID = FACEBOOK_CLIENT_SECRET = #URL CLIENT_URL = #PAYPAL SANDBOX PAYPAL_CLIENT_ID = PAYPAL_CLIENT_SECRET = 可以完美运行!

感谢阅读!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。