1. 程式人生 > >linux下python匯入xgboost出現的問題小結

linux下python匯入xgboost出現的問題小結

在python匯入import xgboost出現如下錯誤:

./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)
上面顯示的意思是在$PYTHON_HOME/lib/libgomp.so.1中沒有‘GOMP_4.0',這個可以使用strings命令檢視libgomp.so.1這個檔案,顯示如下只有到_3.0版本
GOMP_1.0
GOMP_2.0
GOMP_3.0
GOMP_CPU_AFFINITY
因為$PYTHON_HOME/lib/libgomp.so.1是一個連結檔案,所以使用locate命令搜系統中所有的libgomp.so.1,顯示的結果
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgomp.so
/usr/lib/gcc/x86_64-linux-gnu/5/libgomp.so
/usr/lib/x86_64-linux-gnu/libgomp.so.1
/usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
可以使用strings命令檢視上面結果哪一個檔案包含GOMP_4.0,在本機中/usr/lib/x86_64-linux-gnu/libgomp.so.1包含了該字串(說明它包含GOMP_4.0)

下面刪掉舊的$PYTHON_HOME/lib/libgomp.so.1,重新做一個新的連結

ln -s /usr/lib/x86_64-linux-gnu/libgomp.so.1 libgomp.so.1

在pyton中測試import xgboost,又出現了下面的問題,使用相同的方法,替換掉python下對應的連結檔案libstdc++.so.6即可

scipy libstdc++.so.6: version `GLIBCXX_3.4.21'

最終替換掉2個檔案後,在python可正常匯入xgboost...O(∩_∩)O~~

問題剖析:

因為之前的xgboots是使用gcc5.0編譯的,而python2.7依賴於gcc4.7。在python中低版本呼叫了高版本的gcc庫檔案,從而導致了這個錯誤。

參考:

https://github.com/dmlc/xgboost/issues/1786

https://xgboost.readthedocs.io/en/latest/build.html

相關推薦

linuxpython匯入xgboost出現的問題小結

在python匯入import xgboost出現如下錯誤: ./lib/libgomp.so.1: version `GOMP_4.0' not found (required by /home/yin/anaconda3/lib/python3.5/site-packa

更新linuxpython版本

develop 編譯 ins pytho tgz wget python 版本 pre http # 安裝所有的開發工具包 yum groupinstall -y "Development tools" # 安裝其它的必需包 yum install -y zlib-deve

Linuxpython安裝pip

.com dmp blank linux下 mrr com pxn tcc margin pf謂4喲si偶餐0紡http://t.docin.com/yno995 Km2n嬌9186wm氯譾6http://t.docin.com/nkg871 y06迂讕4rH酥訃型9JZh

Linuxpython多版本多環境介紹

package sta app total shel ons 版本 tis openssl 一、python多版本配置說明 安裝python相關依賴 [root@centos6 ~]# yum install -y gcc make patch gdbm-devel o

linuxpython,import cv2報錯no module named cv2

ont 如果 spa module size pip3 pen 報錯 install 配置情況:anaconda2,anaconda3都有裝 打開python,看是哪個版本 如果是anaconda2:pip install opencv-python(試過pip insta

linuxpython編輯器的tab補全

bsp span ioerror ror tor clas atexit linu cep vi tab.py #!/usr/bin/env python # python startup file import sys import readline import rl

Linuxpython環境的搭建

linux python 環境 一、安裝linux最小化系統(CentOS6)安裝最小系統即可二、安裝pyenv多版本管理工具(一)pyenv的安裝步驟1、安裝gityum install git -y2、安裝python編譯所需要用到的包yum -y install gcc make patch

linuxpython操作的一些命令

使用 red hat nbsp with -s 安裝 ati 進入 bin 1.查看python當前版本以及安裝路徑 [root@localhost bin]# python -V Python 2.7.5 [root@localhost HMK]# wherei

Linuxpython預設版本切換成替代版本

當你安裝 Linux 時,安裝過程有可能同時為你提供多個可用的 Python 版本,因此係統中會存在多個 Python 的可執行二進位制檔案。你可以按照以下方法使用 ls 命令來檢視你的系統中都有那些 Python 的二進位制檔案可供使用。 $ ls /usr/bin/python* /

LinuxPython開發的常用命令

上半部分屬於Windows下開發比較常用的命令,我在Windows下是使用pycharm開發的所以在pycharm中的tools下的 Run manage.py 中可以省去 python manage.py 比較省事.我是使用python3開發的哦 pip install 包名 安裝依賴

linux匯出匯入遠端資料庫中的資料

1.在linux終端輸入以下命令進行資料庫的匯出:  ls : 查詢所在資料夾中的檔案 mysqldump -h 所要連線的資料庫的IP地址(如果是本機的話就是:127.0.0.1) -u使用者名稱 -p使用者密碼  在連線的資料庫中所要匯出的資料庫的名字 >

Linuxpython安裝升級詳細步驟 | Python2 升級 Python3

Linux下python升級步驟  Python2 ->Python3 多數情況下,系統自動的Python版本是2.x 或者yum直接安裝的也是2.x 但是,現在多數情況下建議使用3.x 那麼如何升級呢?-p

linux解除安裝apache方法小結

先檢查是否安裝了apache 1)yum安裝檢查:yum list installed |grep httpd 2)rpm安裝檢查:rpm -qa |grep httpd 3)自己編譯安裝的有多種方式查詢,例如查詢httpd的執行程式,或者檢查程序ps -ef |grep httpd等方

linuxmysql匯入匯出

匯出   資料和表結構 mysqldump -u使用者名稱 -p 資料庫名 > 匯出後的檔名.sql #示例如下 #mysqldump -uroot -p table > table.sql #回車輸入DB密碼 #password 僅表結構 mysql

linuxpython的事項

先解除安裝,在安裝 apt-get purge / apt-get –purge remove 刪除已安裝包(不保留配置檔案)。 如軟體包a,依賴軟體包b,則執行該命令會刪除a,而且不保留配置檔案 apt-get autoremove 刪除為了滿足依賴而安裝的,但現在不再需要的軟體包(包括已安裝包)

linux 程式執行時出現的 error while loading shared libraries

Linux中error while loadin   預設情況下,編譯器只會使用/lib和/usr/lib這兩個目錄下的庫檔案,通常通過原始碼包進行安裝時,如果不指定--prefix,會將庫安裝在/usr/local/lib目錄下;當執行程式需要連結動態庫時,提示找不到相關的.s

LinuxPython連線Oracle 報cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be load

在Linux上使用python執行資料庫指令碼的時候報:cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded解決方法 這個導致這個問題的原因是本機的Pytho

linuxpython程式後臺執行,並將列印資訊儲存檔案

在跑比較時間比較長的程式,或者是列印資訊比較多的程式時,一般都會後臺執行程式,然後把列印資訊儲存在檔案中,等程式執行結束後再檢查輸出日誌。完成該功能可以用如下命令: nuhup python -u test.py > test.log 2>&1 &

LinuxPython環境部署

前言 首先說明一點,在CentOS 7.2下系統自帶python 2.7,如果對版本有更高要求則需要升級,本文安裝的是python2 和 python 3 共存環境。 Linux下部署python(3.6)環境(事實上就是安裝python啦)有3種簡單方法,可

linuxpython sys.path永久新增自己的模組路徑

1 . 臨時性新增 import sys sys.path.append(‘模組路徑’) 這樣有個問題是,當關閉shell後,就會失效 2 . 永久性新增 shell 下,cd /usr/lib/python2.7/di