Xgboost: 导入 xgboost OSError:未找到版本 `GOMP_4.0'

创建于 2016-11-18  ·  15评论  ·  资料来源: dmlc/xgboost

对于错误或安装问题,请提供以下信息。
您提供的信息越多,我们就越容易提供
帮助和建议。

环境信息

编译成功,
anaconda 环境,
并使用“conda list”可以显示“xgboost”。

但是当 import xgboost 显示错误: OSError: /home/yin/anaconda3/bin/../lib/libgomp.so.1: version `GOMP_4.0' not found (required by /home/yin/anaconda3/lib/ python3.5/site-packages/xgboost-0.6-py3.5.egg/xgboost/libxgboost.so)

操作系统:Ubunutu kylin 16.10

编译器:

使用的包(python/R/jvm/C++):python

xgboost使用的版本:最新

如果从源安装,请提供

  1. 提交哈希( git rev-parse HEAD
  2. 日志会有帮助(如果日志很大,请作为附件上传)。

OSError:/home/yin/anaconda3/bin/../lib/libgomp.so.1:找不到版本“GOMP_4.0”(/home/yin/anaconda3/lib/python3.5/site-packages/ 需要xgboost-0.6-py3.5.egg/xgboost/libxgboost.so)

如果您使用的是 python 包,请提供:

蟒蛇

  1. python版本和发行版:python 3.5.2
  2. 如果您不是从源代码安装,则安装xgboost的命令

如果您使用的是 R 包,请提供

  1. R sessionInfo()
  2. 如果您不是从源代码安装,则安装xgboost的命令

重现步骤

1.
2.
3.

你试过什么?

1.重建xgboost,不起作用

2.
3.

最有用的评论

或许你可以试试conda install libgcc也可以解决这样的问题@jiqiujia

所有15条评论

你如何重建 xgboost ?
你做了make clean_all并跟着make -j吗?

您好,感谢您的关心,问题已经解决了。关键是我安装了anaconda,anaconda中的libgomp.so.1和libstdc++.so.6文件似乎过时了,缺少GOMP_4.0和其他一些文件,但是在Ubuntu 16.04对应的文件已经够新了,解决方法是制作一些链接文件来更新anaconda中的对应文件

啊,厉害。 关闭问题,以免它出现未解决

2016 年 11 月 21 日上午 11:57,“yinshurman” [email protected]写道:

您好,感谢您的关心,问题已经解决,重点是
我安装了 anaconda 和 libgomp.so.1 和 libstdc++.so.6 文件
anaconda 似乎过时了,缺少 GOMP_4.0 和其他一些文件,但在
Ubuntu 16.04 对应的文件够新,解决办法是make
一些链接文件来更新anaconda中的相应文件


您收到此消息是因为您发表了评论。
直接回复此邮件,在 GitHub 上查看
https://github.com/dmlc/xgboost/issues/1786#issuecomment -261854524,或者静音
线程
https://github.com/notifications/unsubscribe-auth/ACGUp9c5d-t8t-87qfMLYoJTk5cfW4_rks5rATnYgaJpZM4K2Gx1
.

@yinshurman您介意发布解决步骤吗!
提前谢谢

step 1 : 使用以下命令检查 anconda 中的 libgomp.so.1 文件是否包含所需的 GOMP_4.0 版本(在所有步骤中将路径替换为您自己的路径):
strings /home/yin/anaconda3/bin/../lib/libgomp.so.1 |grep GOMP (如果没有GOMP_4.0版本,请转至第2步,否则请发表评论)
第 2 步:检查操作系统中的 libgomp.so.1:
sudo find / -name libgomp.so.1*
step3:查看anaconda中的链接:
ls -al /home/yin/anaconda3/bin/../lib/libgomp.so.1 如果链接未链接到 step 2 的列表中的最新版本,则创建一个新链接以通过以下方式更新它:
sudo rm -rf /home/yin/anaconda3/bin/../lib/libgomp.so.1
sudo ln -s <path of the newest version libgomp file in your OS > <path in anaconda>
(例如sudo ln -s /usr/.../libgomp.so.XXX /home/yin/anaconda3/bin/..libgomp.so.1
ps:没有我的电脑,我不记得具体的路径,但是这个方法解决了我的问题,事实上,在我的情况下,不仅GOMP_4.0而且其他一些文件都没有找到(例如,这个https ://github.com/dmlc/xgboost/issues/1700 ),这个解决方案也很有效。

有效。 非常感谢@yinshurman

@yinshurman ....你能告诉我一步一步我没有找到以下错误的解决方案:

导入 xgboost
SError:/home/akash/anaconda2/bin/../lib/libgomp.so.1:未找到版本“GOMP_4.0”(/home/akash/anaconda2/lib/python2.7/site-packages/ 需要xgboost/./lib/libxgboost.so

是的,它有效。 这些步骤非常适用于 libeemd 和 pyeemd 包。 谢谢

有什么方法可以更新 anaconda 中的 libgomp 库
在我将符号文件制作到系统文件后,它会报告有关 libstdc++.so.6 的错误。

或许你可以试试conda install libgcc也可以解决这样的问题@jiqiujia

@yinshurman 非常感谢。 有用!

@yinshurman 非常感谢。 有用

我遇到了类似的问题,通过将 anaconda gcc 从 4.8.5 更新到 5.4.0 来修复它:

conda install -c salford_systems gcc-5

@yinshurman我遇到了 libgomp.so.1 和 libstdc++.so.6 的问题,它对两者都有效。 谢谢你。

未找到“GOMP_4.0”
这是一个错误,因为 xgboost 构建时使用的版本与运行时 xgboost 使用的 conda 环境中的版本不匹配。
解决问题而不破坏任何东西的最简单方法是使用 conda 的库显式构建 xgboost,为此需要执行以下操作:

  1. 启动一个新的终端
    export LD_LIBRARY_PATH=~/work/anaconda3/lib #or whatever your anaconda install path is
  2. 确保您的默认 python 来自 anaconda 发行版:
    which python
    如果没有,请将 anaconda 发行版添加到 PATH:
    export PATH=~/work/anaconda3/bin:$PATH
  3. 重建并重新安装 xgboost
    cd ~/xgboost
    make clean_all
    make -j4
    cd python-package
    python setup.py install
  4. 核实

您现在可以关闭终端,并启动一个新终端,LD_LIBRARY_PAT 不需要持久化,作为 conda 的 env。 得到所需的库。

此页面是否有帮助?
0 / 5 - 0 等级