(Docker)jupyter/all spark笔记本中缺少GOMP_parallel或GOMP_4.0:R和Python

(Docker)jupyter/all spark笔记本中缺少GOMP_parallel或GOMP_4.0:R和Python,python,linux,gcc,Python,Linux,Gcc,我有一个关于GOMP的问题,我认为这与gcc有关 我用这个图像作为一些实验的基础。看起来我使用的是一个基于这个未修改图像的OK版本(4.9.2),但是我在一些与Cython相关的软件包中发现了一些奇怪的行为 例1 在未经修改的jupyter/all spark notebook docker映像上运行时,在尝试运行Python时,我遇到以下问题: import lightfm Traceback (most recent call last): File "", line 1, in Fi

我有一个关于GOMP的问题,我认为这与gcc有关

我用这个图像作为一些实验的基础。看起来我使用的是一个基于这个未修改图像的OK版本(4.9.2),但是我在一些与Cython相关的软件包中发现了一些奇怪的行为

例1

在未经修改的jupyter/all spark notebook docker映像上运行时,在尝试运行Python时,我遇到以下问题:

import lightfm

Traceback (most recent call last):

File "", line 1, in

File "/opt/conda/lib/python3.4/site-packages/lightfm/init.py", line 1, in 
from .lightfm import LightFM

File "/opt/conda/lib/python3.4/site-packages/lightfm/lightfm.py", line 7, in 
from .lightfm_fast import (CSRMatrix, FastLightFM,

ImportError: /opt/conda/lib/python3.4/site-packages/lightfm/lightfm_fast.cpython-34m.so:
undefined symbol: GOMP_parallel
我尝试过的事情:

  • 转到文件lightfm.py并将所有依赖项移动到一行,如下所示:

    from.lightfm\u快速导入(CSRMatrix、FastLightFM、,
    符合逻辑,预测光FM,
    合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身合身

  • 同样的错误

    Checking gcc and kernel versions: gcc 4.9.2 Ubuntu 14.04 Linux 00846c176840 3.13.0-67-generic #110-Ubuntu SMP Fri Oct 23 13:24:41 UTC 2015 x86_64 GNU/Linux
    
    还尝试将“
    .lightfm
    ”更改为“
    lightfm
    ”以从相对导入更改。同样的错误

    Checking gcc and kernel versions: gcc 4.9.2 Ubuntu 14.04 Linux 00846c176840 3.13.0-67-generic #110-Ubuntu SMP Fri Oct 23 13:24:41 UTC 2015 x86_64 GNU/Linux
    
    但我认为,如果你只是拉docker镜像并进行pip安装
    lightfm
    ,它应该准确地复制错误

    例2

    运行
    pip install xgboost
    时,安装成功,但在笔记本电脑中,我尝试执行以下操作:

    ---------------------------------------------------------------------------
    OSError                                   Traceback (most recent call last)
    <ipython-input-2-afdaff4619ce> in <module>()
    ----> 1 import xgboost
    
    /home/jovyan/.local/lib/python3.5/site-packages/xgboost-0.4-py3.5.egg/xgboost/__init__.py in <module>()
          9 import os
         10 
    ---> 11 from .core import DMatrix, Booster
         12 from .training import train, cv
         13 from . import rabit
    
    /home/jovyan/.local/lib/python3.5/site-packages/xgboost-0.4-py3.5.egg/xgboost/core.py in <module>()
         81 
         82 # load the XGBoost library globally
    ---> 83 _LIB = _load_lib()
         84 
         85 def _check_call(ret):
    
    /home/jovyan/.local/lib/python3.5/site-packages/xgboost-0.4-py3.5.egg/xgboost/core.py in _load_lib()
         75     if len(lib_path) == 0:
         76         return None
    ---> 77     lib = ctypes.cdll.LoadLibrary(lib_path[0])
         78     lib.XGBGetLastError.restype = ctypes.c_char_p
         79     return lib
    
    /opt/conda/lib/python3.5/ctypes/__init__.py in LoadLibrary(self, name)
        423 
        424     def LoadLibrary(self, name):
    --> 425         return self._dlltype(name)
        426 
        427 cdll = LibraryLoader(CDLL)
    
    /opt/conda/lib/python3.5/ctypes/__init__.py in __init__(self, name, mode, handle, use_errno, use_last_error)
        345 
        346         if handle is None:
    --> 347             self._handle = _dlopen(self._name, mode)
        348         else:
        349             self._handle = handle
    
    OSError: /opt/conda/bin/../lib/libgomp.so.1: version `GOMP_4.0' not found (required by /home/jovyan/.local/lib/python3.5/site-packages/xgboost-0.4-py3.5.egg/xgboost/libxgboost.so)
    
    更新:我现在认为检测到的编译器实际上是早期版本,因此这可能是问题的根源,因为在运行时

    %install_ext https://raw.githubusercontent.com/rasbt/watermark/master/watermark.py
    %load_ext watermark
    # show a watermark for this environment
    %watermark -d -m -v -p numpy,matplotlib -g
    
    我得到以下回应:

    CPython 2.7.11
    IPython 4.1.2
    
    numpy 1.10.4
    matplotlib 1.5.1
    
    compiler   : GCC 4.4.7 20120313 (Red Hat 4.4.7-1)
    system     : Linux
    release    : 4.4.5-15.26.amzn1.x86_64
    machine    : x86_64
    processor  : 
    CPU cores  : 4
    interpreter: 64bit
    Git hash   : 
    

    还有其他想法吗?

    很可能作者已经找到了答案,不过我还是把它留在这里,因为它可能会为某人节省时间

    这个问题确实与使用的gcc的错误版本有关。在
    all spark notebook
    上安装xgboost之前运行此命令帮助我解决了gomp问题:

    RUN conda install -y gcc
    
    您可以在我的
    all spark notebook
    扩展版中看到有效的解决方案

    RUN conda install -y gcc