λͺ κ°μ§ μ’μ μλ(#1445) νμ PyPI xgboost
μ€μΉκ° κ°μ₯ μ΅μ μ½λ https://pypi.python.org/pypi/xgboost/λ‘ μ
λ°μ΄νΈλκ³ Mac/Linux μ¬μ©μλ pip install xgboost
λ₯Ό ν΅ν΄ μ€μΉν μ μμ΅λλ€ numpy
scipy
λ° scikit-learn
μ λν λ μ¬μ΄ μ’
μμ± ν΄κ²°μ μν΄ Anaconda
λλ Miniconda
python 릴리μ€λ₯Ό μ¬μ©νκ³ Anaconda
κΆμ₯ν©λλ€ pip
( setuptools
) μ΅μ λ²μ μΌλ‘.
pip install xgboost
νκ³ κΈ°λ€λ¦¬κΈ° μ μ μ¬κΈ°μ 볡μ¬λ PyPI νμ΄μ§μ μ§μΉ¨μ λ°λ₯΄μμμ€.
gcc
μμ brew
νμ¬ brew tap homebrew/versions; brew install gcc --without-multilib
첫째.sudo apt-get install build-essential
λ‘ gcc
λ₯Ό μ€μΉνκ±°λ μμ€ν
μ ν΄λΉ ν¨ν€μ§ κ΄λ¦¬μλ₯Ό μ¬μ©νμ¬ μ€μΉνμμμ€.pip
μ€μΉλ μΌλΆ Windows νκ²½μμ μλνμ§ μμ μ μμΌλ©° μκΈ°μΉ μμ μ€λ₯κ° λ°μν μ μμ΅λλ€. Windowsμμμ pip μ€μΉλ νμ¬ μΆκ° μ‘°μ¬λ₯Ό μν΄ λΉνμ±νλμ΄ μμ΅λλ€. Githubμμ μ€μΉνμμμ€.λͺ¨λ κ²μ΄ μ μμ΄λ©΄ λͺ λΆ λμ CPU ν¬ μμμ΄ λ€λ¦° ν(μ¦μμμ μ»΄νμΌλ¨) λ€μκ³Ό κ°μ΄ νμλμ΄μΌ ν©λλ€.
μ΄ ν¨ν€μ§λ Mac OS X 10.10, ubuntu 14/16 λ° CentOS 7μμ λ¬Έμ μμ΄ ν
μ€νΈλμμ΅λλ€. μμΈν μ 보μ ν¨κ» λ¬Έμ λλ μ€μΉ λ¬Έμ λ₯Ό μ¬κΈ°μμ λ³΄κ³ νμμμ€. λλ²κ·Έ μΆλ ₯μ μ¬μ©νλ €λ©΄ pip install -v xgboost
. κ°μ¬ ν΄μ.
1γgcc-6.1.0_1μ΄ μ΄λ―Έ μ€μΉλμ΄ μμ΅λλ€.
2γ/private/var/folders/n2/q3c3s28n7ybbmt2glbsb4s5h0000gn/T/pip-build-Yu8pqZ/xgboostμμ "python setup.py egg_info" λͺ
λ Ήμ΄ μ€λ₯ μ½λ 1λ‘ μ€ν¨νμ΅λλ€.
@hemoely λλ‘λ°μ€μ κ°μ μ΄λκ°μ μ 체 λ‘κ·Έλ₯Ό μ 곡ν μ μμ΅λκΉ? μΆμ g++
λ μμ΅λλ€.
@byronliwei μμ€ν
, Ubuntu, Mac λλ CentOSλ 무μμ
λκΉ? λν dropboxμ κ°μ μ΄λκ°μ μ 체 λ‘κ·Έλ₯Ό μ 곡ν μ μμ΅λκΉ?
λ§₯ οΌ κ°μ¬ν©λλ€
xgboost μμ§
μΊμλ xgboost-0.6a2.tar.gz μ¬μ©
python setup.py egg_info λͺ
λ Ήμ μ 체 μΆλ ₯:
rm -f -rf λΉλ build_plugin λΌμ΄λΈλ¬λ¦¬ bin _~ /_~ _/_/_~ */_/_/_~ _/_.o _/_/_.o */_/_/_.o xgboostclang-omp++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT λΉλ/νμ΅κΈ°. o src/learner.cc >build/learner.d/bin/sh: clang-omp++: λͺ
λ Ήμ μ°Ύμ μ μμ΅λλ€.clang-omp++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT λΉλ/λ‘κΉ
. o src/logging.cc >build/logging.dmake: * * [build/learner.o] μ€λ₯ 127
make: ** λλμ§ μμ μμ
μ κΈ°λ€λ¦¬λ μ€..../bin/sh: clang-omp++: λͺ
λ Ήμ μ°Ύμ μ μμ΅λλ€.make: * * [build/logging.o] μ€λ₯ 127
--------------------------
λ€μ€ μ€λ λ xgboost λΉλ μ€ν¨
λ¨μΌ μ€λ λ xgboost λΉλ μμ
rm -f -rf λΉλ build_plugin λΌμ΄λΈλ¬λ¦¬ bin _~ /_~ _/_/_~ */_/_/_~ _/_.o _/_/_.o */_/_/_.o xgboostclang-omp++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT λΉλ/νμ΅κΈ°. o src/learner.cc >build/learner.d/bin/sh: clang-omp++: λͺ
λ Ήμ μ°Ύμ μ μμ΅λλ€.make: * * [build/learner.o] μ€λ₯ 127
make: ** λλμ§ μμ μμ
μ κΈ°λ€λ¦¬λ μ€....clang-omp++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT λΉλ/λ‘κΉ
. o src/logging.cc >build/logging.d/bin/sh: clang-omp++: λͺ
λ Ήμ μ°Ύμ μ μμ΅λλ€.make: * * [build/logging.o] μ€λ₯ 127
λ¨μΌ μ€λ λ xgboost λΉλ μ±κ³΅
λ©ν° μ€λ λ λ²μ μ μνλ κ²½μ°
doc/build.mdμ μΆκ° μ§μΉ¨μ μ°Έμ‘°νμΈμ.
μμΆμ (κ°μ₯ μ΅κ·Ό νΈμΆ λ§μ§λ§):
νμΌ "
νμΌ "/private/var/folders/n2/q3c3s28n7ybbmt2glbsb4s5h0000gn/T/pip-build-_5FFp6/xgboost/setup.py", 29ν,
LIB_PATH = λΌμ΄λΈλ¬λ¦¬ κ²½λ‘ 'find_lib_path'
νμΌ "/private/var/folders/n2/q3c3s28n7ybbmt2glbsb4s5h0000gn/T/pip-build-_5FFp6/xgboost/xgboost/libpath.py", 45ν, find_lib_path
'c ν보 λͺ©λ‘ :n ' + ('n'.join(dll_path)))
__builtin__.XGBoostLibraryNotFound: ν보 κ²½λ‘μμ XGBoost λΌμ΄λΈλ¬λ¦¬λ₯Ό μ°Ύμ μ μμ΅λλ€. μ»΄νμΌλ¬λ₯Ό μ€μΉνκ³ λ£¨νΈ κ²½λ‘μμ build.shλ₯Ό μ€ννμ΅λκΉ?
ν보μ λͺ©λ‘:
/private/var/folders/n2/q3c3s28n7ybbmt2glbsb4s5h0000gn/T/pip-build-_5FFp6/xgboost/xgboost/libxgboost.so
/private/var/folders/n2/q3c3s28n7ybbmt2glbsb4s5h0000gn/T/pip-build-_5FFp6/xgboost/xgboost/../../lib/libxgboost.so
/private/var/folders/n2/q3c3s28n7ybbmt2glbsb4s5h0000gn/T/pip-build-_5FFp6/xgboost/xgboost/./lib/libxgboost.so
"python setup.py egg_info" λͺ λ Ήμ΄ /private/var/folders/n2/q3c3s28n7ybbmt2glbsb4s5h0000gn/T/pip-build-_5FFp6/xgboost/μ μ€λ₯ μ½λ 1κ³Ό ν¨κ» μ€ν¨νμ΅λλ€.
@byronliwei gcc-5
λλ clang-omp
μ΄ μλ κ² κ°μΌλ―λ‘ μ»΄νμΌμ΄ μ€ν¨ν©λλ€. brew
μμ λ μ€ νλλ₯Ό μ€μΉνμΈμ.
@byronliwei μμ‘° μ€μΉ clang-omp
λλ μ΄κ²μ΄ λ€μ λ¬Έμ μ λν μ¬λ°λ₯Έ μ₯μκ° λκΈ°λ₯Ό λ°λλλ€. (κ·Έλ μ§ μλ€λ©΄ μ΄κ²μ κ²μν μμΉλ₯Ό μλ €μ£Όμμμ€)
OSX El Capitan 10.11.5, Anaconda Python 3.5κ° μμ΅λλ€.
brew install gcc --without-multilib
μ¬λ¬ λ² μ€μΉ λ° μ κ±°λ₯Ό μλ£νμ΅λλ€.
brewλ gcc6μ μ€μΉνκ³ xgboostλ gcc5λ₯Ό νμλ‘ ν©λλ€. λ΄κ° μ»λ μ νν μ€λ₯λ λ€μκ³Ό κ°μ΅λλ€.
Python 3.5.2 |Anaconda 4.1.1 (x86_64)| (default, Jul 2 2016, 17:52:12)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import xgboost
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "//anaconda/lib/python3.5/site-packages/xgboost/__init__.py", line 11, in <module>
from .core import DMatrix, Booster
File "//anaconda/lib/python3.5/site-packages/xgboost/core.py", line 112, in <module>
_LIB = _load_lib()
File "//anaconda/lib/python3.5/site-packages/xgboost/core.py", line 106, in _load_lib
lib = ctypes.cdll.LoadLibrary(lib_path[0])
File "//anaconda/lib/python3.5/ctypes/__init__.py", line 425, in LoadLibrary
return self._dlltype(name)
File "//anaconda/lib/python3.5/ctypes/__init__.py", line 347, in __init__
self._handle = _dlopen(self._name, mode)
OSError: dlopen(//anaconda/lib/python3.5/site-packages/xgboost/./lib/libxgboost.so, 6): Library not loaded: /usr/local/opt/gcc/lib/gcc/5/libgomp.1.dylib
Referenced from: //anaconda/lib/python3.5/site-packages/xgboost/./lib/libxgboost.so
Reason: image not found
λμμ μ£Όμλ©΄ μ λ§ κ°μ¬νκ² μ΅λλ€. κ°μ¬ν©λλ€!
Macμ Makefileμλ μ΄μ gcc-5κ° νμν©λλ€. gcc-6μ λ¬Όμ΄λ΄μΌ ν κΉμ?
μλ νμΈμ,
xgboostλ₯Ό μ€μΉνλ €κ³ ν λ λ€μ μ€λ₯κ° λ°μνμ΅λλ€.
λ΄κ° μ λ€μ eroorλ₯Ό μ»μλμ§ μμλκΉ?
μ λ Macμ μ¬μ©νκ³ μμΌλ©° "brew tap homebrew/versions; brew install gcc --without-multilib"λ₯Ό μ€ννμ΅λλ€.
미리 κ°μ¬λ립λλ€!
Collecting xgboost
1 location(s) to search for versions of xgboost:
* https://pypi.python.org/simple/xgboost/
Getting page https://pypi.python.org/simple/xgboost/
Looking up "https://pypi.python.org/simple/xgboost/" in the cache
Current age based on date: 39
Freshness lifetime from max-age: 600
Freshness lifetime from request max-age: 600
The response is "fresh", returning cached response
600 > 39
Analyzing links from page https://pypi.python.org/simple/xgboost/
Found link https://pypi.python.org/packages/16/ac/dd16a3206de8658a5e0076174941ae642ee10c958c53a35a7500993ca936/xgboost-0.4a15.tar.gz#md5=bcab760af5ac7f20e88bde7426423565 (from https://pypi.python.org/simple/xgboost/), version: 0.4a15
Found link https://pypi.python.org/packages/20/95/c089ee1be6574ed8167f0bfbd5f78c1adc7b1403ba3977d5ae98003882af/xgboost-0.4a22.tar.gz#md5=cb858cf85fe9f4263e9b523c4900c3f9 (from https://pypi.python.org/simple/xgboost/), version: 0.4a22
Found link https://pypi.python.org/packages/21/5c/a221a2ea13ee14acd1ddc59e213fc788ebd2e7550249adbb12934367aa58/xgboost-0.4a28.tar.gz#md5=fd8ffedd172b5cb917483df76e6efe7a (from https://pypi.python.org/simple/xgboost/), version: 0.4a28
Found link https://pypi.python.org/packages/34/85/456a1a8c762f646671043e446a59efbce02b5f408f522c4ef8793e860c5e/xgboost-0.6a2.tar.gz#md5=c486211efa29b95771c74f5d8701ca4a (from https://pypi.python.org/simple/xgboost/), version: 0.6a2
Found link https://pypi.python.org/packages/4a/cc/9556005199e9f550c97bc1e81bff64431c952a9968f78651ba48b9687243/xgboost-0.4a26.tar.gz#md5=e5b1f7c477e5238e7b491153449b33b2 (from https://pypi.python.org/simple/xgboost/), version: 0.4a26
Found link https://pypi.python.org/packages/4f/70/a236e5170ab7f72cf49554400d841a2046d7c712e2cf6524a435612469a4/xgboost-0.4a25.tar.gz#md5=bf3d633fa88ae7923794dd5da0600388 (from https://pypi.python.org/simple/xgboost/), version: 0.4a25
Found link https://pypi.python.org/packages/58/85/94517fb4933fbc66c87df3f0166c48e421b1d3d082d8d0b29960f4e3b643/xgboost-0.4a30.tar.gz#md5=5f4e812ba3a1faa85514993e56c1b4b8 (from https://pypi.python.org/simple/xgboost/), version: 0.4a30
Found link https://pypi.python.org/packages/65/4e/05d8fe3dd568cf57fe76edb3018d2a7d8bc57611b8fef6dd2e4cfb6c794a/xgboost-0.4a12.tar.gz#md5=4d768e034a28590497bb79279f036946 (from https://pypi.python.org/simple/xgboost/), version: 0.4a12
Found link https://pypi.python.org/packages/6c/d7/b7e5027c95f1bd6676062af56bfbd53eee567f8384a4aa582330360a3989/xgboost-0.4a14.tar.gz#md5=a7c648933a47ae31f869b5c030c17c69 (from https://pypi.python.org/simple/xgboost/), version: 0.4a14
Found link https://pypi.python.org/packages/71/aa/206c86bc4be36832f8c73491d972a6c1bcdcd2717f1fb04d0bad0c61ae35/xgboost-0.4a23.tar.gz#md5=4f8a17ca86995ed51fc1a424618b94db (from https://pypi.python.org/simple/xgboost/), version: 0.4a23
Found link https://pypi.python.org/packages/7a/b4/fa38771ebd221dd83aa37864157daebb7d8446fd6c3614dc6f56932f9643/xgboost-0.4a19.tar.gz#md5=413d55d0534447e77064dbd1ad1ccb48 (from https://pypi.python.org/simple/xgboost/), version: 0.4a19
Found link https://pypi.python.org/packages/7e/16/d47c4ba06a5b4d364a7323013e040f3f21d50db2b50cfc962bad674b873f/xgboost-0.4a29.tar.gz#md5=4bf4eb1898cfc28bbd3b43e19c69fdf5 (from https://pypi.python.org/simple/xgboost/), version: 0.4a29
Found link https://pypi.python.org/packages/7f/36/e55ba853acc85d7ebaddec498c72c768bb2700415c5a2ea967a0b8dc8957/xgboost-0.6a1.tar.gz#md5=be2b2f4c6f439960da3f495da39b45e2 (from https://pypi.python.org/simple/xgboost/), version: 0.6a1
Found link https://pypi.python.org/packages/92/37/d7b963a6b307941e86758bd3330d62ace0c83eaf60fbacf8486a6e8d72da/xgboost-0.4a21.tar.gz#md5=45284beb53f5087e73dcf55ff1c5a026 (from https://pypi.python.org/simple/xgboost/), version: 0.4a21
Found link https://pypi.python.org/packages/97/7b/344e3b849bb041dca7c6cab66be8007f64cdceebcb41cda9f1e10bc651d9/xgboost-0.4a13.tar.gz#md5=5f53d51e4305c679192b3cabda2b0dbe (from https://pypi.python.org/simple/xgboost/), version: 0.4a13
Found link https://pypi.python.org/packages/b3/ec/110721470306e8c9199c46217cfff5c32ad1e7e8a2dabefa2603d79b32bc/xgboost-0.4a18.tar.gz#md5=9f70ca05843afb1d50522530f140d640 (from https://pypi.python.org/simple/xgboost/), version: 0.4a18
Found link https://pypi.python.org/packages/ca/58/2c3265f4824a8c3a33784e7236adb7808d3c647cfe962045fcc53d10d570/xgboost-0.4a24.tar.gz#md5=2bf0edfe62ddb3502c4f48df3428a7e0 (from https://pypi.python.org/simple/xgboost/), version: 0.4a24
Found link https://pypi.python.org/packages/cd/4d/9a9341759aa32358b794db9e21cd0825e9107e2fc7a641e285eb1b0b69b8/xgboost-0.4a20.tar.gz#md5=88721733e7c7026fa2e95de7165d4b86 (from https://pypi.python.org/simple/xgboost/), version: 0.4a20
Found link https://pypi.python.org/packages/ec/c1/93d27b079b5edd76bc93d6cefcf82e667942bb576a5f764742401febe161/xgboost-0.4a27.tar.gz#md5=cd091569f651c3c625c4a299cfc72e74 (from https://pypi.python.org/simple/xgboost/), version: 0.4a27
Using version 0.6a2 (newest of versions: 0.4a12, 0.4a13, 0.4a14, 0.4a15, 0.4a18, 0.4a19, 0.4a20, 0.4a21, 0.4a22, 0.4a23, 0.4a24, 0.4a25, 0.4a26, 0.4a27, 0.4a28, 0.4a29, 0.4a30, 0.6a1, 0.6a2)
Looking up "https://pypi.python.org/packages/34/85/456a1a8c762f646671043e446a59efbce02b5f408f522c4ef8793e860c5e/xgboost-0.6a2.tar.gz" in the cache
Current age based on date: 12635
Freshness lifetime from max-age: 31557600
The response is "fresh", returning cached response
31557600 > 12635
Using cached xgboost-0.6a2.tar.gz
Downloading from URL https://pypi.python.org/packages/34/85/456a1a8c762f646671043e446a59efbce02b5f408f522c4ef8793e860c5e/xgboost-0.6a2.tar.gz#md5=c486211efa29b95771c74f5d8701ca4a (from https://pypi.python.org/simple/xgboost/)
Running setup.py (path:/private/var/folders/qb/g_6lvtb15_b_60g185fxj5v40000gn/T/pip-build-dzdymwlh/xgboost/setup.py) egg_info for package xgboost
Running command python setup.py egg_info
rm -f -rf build build_plugin lib bin *~ */*~ */*/*~ */*/*/*~ */*.o */*/*.o */*/*/*.o xgboost
clang-omp++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/learner.o src/learner.cc >build/learner.d
/bin/sh: clang-omp++: command not found
clang-omp++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/logging.o src/logging.cc >build/logging.d
make: *** [build/learner.o] Error 127
make: *** Waiting for unfinished jobs....
/bin/sh: clang-omp++: command not found
make: *** [build/logging.o] Error 127
-----------------------------
Building multi-thread xgboost failed
Start to build single-thread xgboost
rm -f -rf build build_plugin lib bin *~ */*~ */*/*~ */*/*/*~ */*.o */*/*.o */*/*/*.o xgboost
clang-omp++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/learner.o src/learner.cc >build/learner.d
/bin/sh: clang-omp++: command not found
make: *** [build/learner.o] Error 127
make: *** Waiting for unfinished jobs....
clang-omp++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/logging.o src/logging.cc >build/logging.d
/bin/sh: clang-omp++: command not found
make: *** [build/logging.o] Error 127
Successfully build single-thread xgboost
If you want multi-threaded version
See additional instructions in doc/build.md
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/qb/g_6lvtb15_b_60g185fxj5v40000gn/T/pip-build-dzdymwlh/xgboost/setup.py", line 29, in <module>
LIB_PATH = libpath['find_lib_path']()
File "/private/var/folders/qb/g_6lvtb15_b_60g185fxj5v40000gn/T/pip-build-dzdymwlh/xgboost/xgboost/libpath.py", line 45, in find_lib_path
'List of candidates:\n' + ('\n'.join(dll_path)))
XGBoostLibraryNotFound: Cannot find XGBoost Libarary in the candicate path, did you install compilers and run build.sh in root path?
List of candidates:
/private/var/folders/qb/g_6lvtb15_b_60g185fxj5v40000gn/T/pip-build-dzdymwlh/xgboost/xgboost/libxgboost.so
/private/var/folders/qb/g_6lvtb15_b_60g185fxj5v40000gn/T/pip-build-dzdymwlh/xgboost/xgboost/../../lib/libxgboost.so
/private/var/folders/qb/g_6lvtb15_b_60g185fxj5v40000gn/T/pip-build-dzdymwlh/xgboost/xgboost/./lib/libxgboost.so
Cleaning up...
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/qb/g_6lvtb15_b_60g185fxj5v40000gn/T/pip-build-dzdymwlh/xgboost/
Exception information:
Traceback (most recent call last):
File "//anaconda/lib/python3.5/site-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "//anaconda/lib/python3.5/site-packages/pip/commands/install.py", line 310, in run
wb.build(autobuilding=True)
File "//anaconda/lib/python3.5/site-packages/pip/wheel.py", line 750, in build
self.requirement_set.prepare_files(self.finder)
File "//anaconda/lib/python3.5/site-packages/pip/req/req_set.py", line 370, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "//anaconda/lib/python3.5/site-packages/pip/req/req_set.py", line 601, in _prepare_file
abstract_dist.prep_for_dist()
File "//anaconda/lib/python3.5/site-packages/pip/req/req_set.py", line 127, in prep_for_dist
self.req_to_install.run_egg_info()
File "//anaconda/lib/python3.5/site-packages/pip/req/req_install.py", line 425, in run_egg_info
command_desc='python setup.py egg_info')
File "//anaconda/lib/python3.5/site-packages/pip/utils/__init__.py", line 718, in call_subprocess
% (command_desc, proc.returncode, cwd))
pip.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/qb/g_6lvtb15_b_60g185fxj5v40000gn/T/pip-build-dzdymwlh/xgboost/
@liuxu1104 gcc-5
λλ clang-omp
μμ brew
νμΈμ. μ€λ₯ λ‘κ·Έλ μ΄λ¬ν μ»΄νμΌλ¬κ° μμμ 보μ¬μ€λλ€.
λΉμ μ΄ κ°μ§κ³ μλ κ²μ²λΌ @ liuxu1104 보μΈλ€ gcc-6
λμ gcc-5
. μλ§λ μ°λ¦¬λ PyPIμμ Macμ© gcc-6
λλ clang-omp
λ₯Ό μꡬνκ³ gcc-5
λ²λ €μΌ ν©λλ€. ννΈ, μΈμ λ μ§ githubμμ μ€μΉνκ³ CC
λ° CXX
λ₯Ό μ»΄νμΌλ¬λ‘ λ³κ²½νμ¬ CC
make/config.mk
λ₯Ό νΈμ§ν μ μμ΅λλ€.
@phunterlau κ°μ¬ν©λλ€! OS X(El Capitan 10.11.5, Anaconda Python 3.5)μμ λΉλνλλ° μλνμ΅λλ€. λν gcc5 brew install gcc5 --without-multilib
(μ£Όμμ¬νκ³Ό κ²½κ³ κ° κ±°μ μμμ§λ§ pythonμμ xgboostλ₯Ό κ°μ Έμ¬ μ μμ)
@phunterlau ν΄κ²°!
κ°μ¬ν©λλ€!
clang-omp
μ΄ brew(https://github.com/Homebrew/homebrew-core/commit/c57e307)μμ μ κ±°λμμΌλ―λ‘ μ
λ°μ΄νΈλ OS X + homebrewλ₯Ό μ¬μ©νλ λͺ¨λ μ¬μ©μμκ² 'μ°Ύμ μ μμ' μ€λ₯κ° νμλ©λλ€. .
@davechallis κ·Έλ λ€λ©΄ ν₯ν clang-omp
μ§μμ μ κ±°ν΄μΌ ν©λκΉ?
@phunterlau νμ¬ λ²μ μ LLVMμμ opemmp κΈ°λ₯μ μ¬μ©ν μ μμΌλ―λ‘ λμ μ¬μ©νλ©΄ λ©λλ€(κ·Έλ¬λ μ΄μ λ²μ μ Mac OS Xμμλ μ½κ² ν μ€νΈν μ μμΌλ―λ‘ νλΈλ₯μ λμΌν μ±λ/μννΈμ¨μ΄κ° μλμ§ νμ€νμ§ μμ΅λλ€. μ¬μ© κ°λ₯).
μλ₯Ό λ€μ΄ brew install llvm
λ /usr/local/opt/llvm/bin/clang
λ° /usr/local/opt/llvm/bin/clang++
νλ©° λ λ€ -fopenmp
νλκ·Έλ₯Ό μ§μν©λλ€.
mac os xμμ μ΄λ¬ν μ»΄νμΌλ¬(λλ gcc-6)λ₯Ό μ¬μ©νλλ‘ xgboostλ₯Ό λ³κ²½νλ©΄ μ μκ² ν¨κ³Όμ μ΄μμ΅λλ€.
μ΄λ―Έ gcc-6μ μ€μΉνμ§λ§ μ¬μ ν μλ μ€λ₯μ ν¨κ» xgboostλ₯Ό μ€μΉν μ μμ΅λλ€.
κ·Έλμ brewμμ clang-ompλ₯Ό μ€μΉνλΌλ μ‘°μΈμ λ°λ₯΄μ§λ§ μ¬μ ν μ€ν¨νμ΅λλ€.
pip install xgboost
Collecting xgboost
Using cached xgboost-0.6a2.tar.gz
Complete output from command python setup.py egg_info:
rm -f -rf build build_plugin lib bin *~ */*~ */*/*~ */*/*/*~ */*.o */*/*.o */*/*/*.o xgboost
clang-omp++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/learner.o src/learner.cc >build/learner.d
/bin/sh: clang-omp++: command not found
make: *** [build/learner.o] Error 127
make: *** Waiting for unfinished jobs....
clang-omp++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/logging.o src/logging.cc >build/logging.d
/bin/sh: clang-omp++: command not found
make: *** [build/logging.o] Error 127
-----------------------------
Building multi-thread xgboost failed
Start to build single-thread xgboost
rm -f -rf build build_plugin lib bin *~ */*~ */*/*~ */*/*/*~ */*.o */*/*.o */*/*/*.o xgboost
clang-omp++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/learner.o src/learner.cc >build/learner.d
/bin/sh: clang-omp++: command not found
make: *** [build/learner.o] Error 127
make: *** Waiting for unfinished jobs....
clang-omp++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/logging.o src/logging.cc >build/logging.d
/bin/sh: clang-omp++: command not found
make: *** [build/logging.o] Error 127
Successfully build single-thread xgboost
If you want multi-threaded version
See additional instructions in doc/build.md
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/m3/yqpf5xhs1rxbzyh_hz4lhx040000gn/T/pip-build-TbS11L/xgboost/setup.py", line 29, in <module>
LIB_PATH = libpath['find_lib_path']()
File "/private/var/folders/m3/yqpf5xhs1rxbzyh_hz4lhx040000gn/T/pip-build-TbS11L/xgboost/xgboost/libpath.py", line 45, in find_lib_path
'List of candidates:\n' + ('\n'.join(dll_path)))
__builtin__.XGBoostLibraryNotFound: Cannot find XGBoost Libarary in the candicate path, did you install compilers and run build.sh in root path?
List of candidates:
/private/var/folders/m3/yqpf5xhs1rxbzyh_hz4lhx040000gn/T/pip-build-TbS11L/xgboost/xgboost/libxgboost.so
/private/var/folders/m3/yqpf5xhs1rxbzyh_hz4lhx040000gn/T/pip-build-TbS11L/xgboost/xgboost/../../lib/libxgboost.so
/private/var/folders/m3/yqpf5xhs1rxbzyh_hz4lhx040000gn/T/pip-build-TbS11L/xgboost/xgboost/./lib/libxgboost.so
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/m3/yqpf5xhs1rxbzyh_hz4lhx040000gn/T/pip-build-TbS11L/xgboost/
κ·Έλ° λ€μ λμ clang-ompλ₯Ό μ€μΉνμ§λ§ μ¬μ ν μ€ν¨νμ΅λλ€.
$ brew install clang-omp
μ€λ₯: μ΄λ¦μ΄ "clang-omp"μΈ μ¬μ© κ°λ₯ν μμμ΄ μμ΅λλ€.
==> λΉμ·ν μ΄λ¦μ μμ κ²μ μ€...
μ€λ₯: μ μ¬ν μ΄λ¦μ μμμ μ°Ύμ μ μμ΅λλ€.
==> ν κ²μ μ€...
μ€λ₯: μ μλμ§ μμ λ©μλ []' for nil:NilClass
Please report this bug:
https://git.io/brew-troubleshooting
/usr/local/Library/Homebrew/vendor/okjson.rb:202:in
λ¨Ήλ€'
/usr/local/Library/Homebrew/vendor/okjson.rb:165:in pairparse'
/usr/local/Library/Homebrew/vendor/okjson.rb:148:in
objparseμ λΈλ‘'
/usr/local/Library/Homebrew/vendor/okjson.rb:145:in loop'
/usr/local/Library/Homebrew/vendor/okjson.rb:145:in
objparse'
/usr/local/Library/Homebrew/vendor/okjson.rb:119:in arrparseμ valparse'
/usr/local/Library/Homebrew/vendor/okjson.rb:191:in
λΈλ‘'
/usr/local/Library/Homebrew/vendor/okjson.rb:188:in loop'
/usr/local/Library/Homebrew/vendor/okjson.rb:188:in
arrparse'
/usr/local/Library/Homebrew/vendor/okjson.rb:120:in valparse'
/usr/local/Library/Homebrew/vendor/okjson.rb:166:in
pairparse'
/usr/local/Library/Homebrew/vendor/okjson.rb:148:in block in objparse'
/usr/local/Library/Homebrew/vendor/okjson.rb:145:in
루ν'
/usr/local/Library/Homebrew/vendor/okjson.rb:145:in objparse'
/usr/local/Library/Homebrew/vendor/okjson.rb:102:in
textparse'
/usr/local/Library/Homebrew/vendor/okjson.rb:46:in decode'
/usr/local/Library/Homebrew/utils/json.rb:10:in
λ‘λ'
/usr/local/Library/Homebrew/utils/github.rb:176:in open'
/usr/local/Library/Homebrew/cmd/search.rb:133:in
search_tap λΈλ‘'
/usr/local/Library/Homebrew/cmd/search.rb:151:in yield'
/usr/local/Library/Homebrew/cmd/search.rb:151:in
search_tap'
/usr/local/Library/Homebrew/cmd/search.rb:117:in block (2 levels) in search_taps'
λ€μμ 무μμ ν΄μΌ ν©λκΉ? λμμ£ΌμΈμ. κ°μ¬ ν΄μ!
@rayquazasnow λ gcc-6
λ₯Ό κ°μ§κ³ μλ κ²μ²λΌ 보μ΄μ§λ§ νμ¬ pip install xgboost
μλ brew
κ° gcc-5
μ 곡νκΈ° λλ¬Έμ brew
gcc-5
λλ clang-omp++
gcc-5
κ·Έλμ. ννΈ, λΉμ μ GitHubμμμ μ€μΉνκ±°λ μ brew install --with-clang llvm
νμμ clang++
. μμ μ μΈ λ²μ μ μ°Ύκ³ λ€λ₯Έ μμ μ¬νκ³Ό ν¨κ» PyPI
λ₯Ό gcc-6
μ
λ°μ΄νΈνκ² μ΅λλ€.
@phunterlau μ‘°μΈ κ°μ¬ν©λλ€. brew install --with-clang llvm
llvmμ μ±κ³΅μ μΌλ‘ μ€μΉνμ΅λλ€. κ·Έλ¬λ pip install xgboostλ μ¬μ ν μλνμ§ μμ΅λλ€(μμ νμλ κ²κ³Ό λμΌν μ€λ₯ μ½λ). gcc-6μ μ κ±°νκ³ λμ gcc-5λ₯Ό μ€μΉν΄μΌ ν©λκΉ?
brew install gcc --without-multilib
Error: gcc-6.1.0_1 already installed
To install this version, first 'brew unlink gcc'
@rayquazasnow λ gccλ₯Ό λ€μ΄κ·Έλ μ΄λνκΈ° μ μ pip
μμ μ μ€λ₯ λ©μμ§λ₯Ό κ²μνμμμ€. λλ githubμμ μ€μΉνμμμ€.
@phunterlau λ€μμ
$ pip μ€μΉ xgboost
xgboost μμ§
'ReadTimeoutError("HTTPSConnectionPool(host='pypi.python.org', port=443)μ μν΄ μ°κ²°μ΄ λμ΄μ§ ν μ¬μλ(Retry(total=4, connect=None, read=None, redirect=None)): μ½κΈ° μκ°μ΄ μ΄κ³Όλμμ΅λλ€. (μ½κΈ° μκ° μ΄κ³Ό=15)",)': /simple/xgboost/
μΊμλ xgboost-0.6a2.tar.gz μ¬μ©
python setup.py egg_info λͺ
λ Ήμ μ 체 μΆλ ₯:
rm -f -rf λΉλ build_plugin λΌμ΄λΈλ¬λ¦¬ bin _~ /_~ _/_/_~ */_/_/_~ _/_.o _/_/_.o */_/_/_.o xgboostclang-omp++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT λΉλ/νμ΅κΈ°. o src/learner.cc >build/learner.d/bin/sh: clang-omp++: λͺ
λ Ήμ μ°Ύμ μ μμ΅λλ€.clang-omp++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT λΉλ/λ‘κΉ
. o src/logging.cc >build/logging.dmake: * [build/learner.o] μ€λ₯ 127make: * * λλμ§ μμ μμ
μ κΈ°λ€λ¦¬λ μ€....
/bin/sh: clang-omp++: λͺ
λ Ήμ μ°Ύμ μ μμ΅λλ€.
make: ** [build/logging.o] μ€λ₯ 127--------------------------λ€μ€ μ€λ λ xgboost λΉλ μ€ν¨λ¨μΌ μ€λ λ xgboost λΉλ μμrm -f -rf λΉλ build_plugin λΌμ΄λΈλ¬λ¦¬ bin _~ */_~ _/_/_~ */_/_/_~ _/_.o _/_/_.o */_/_/_.o xgboostclang-omp++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT λΉλ/νμ΅κΈ°. o src/learner.cc >build/learner.d/bin/sh: clang-omp++: λͺ
λ Ήμ μ°Ύμ μ μμ΅λλ€.make: * * [build/learner.o] μ€λ₯ 127
make: ** λλμ§ μμ μμ
μ κΈ°λ€λ¦¬λ μ€....clang-omp++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT λΉλ/λ‘κΉ
. o src/logging.cc >build/logging.d/bin/sh: clang-omp++: λͺ
λ Ήμ μ°Ύμ μ μμ΅λλ€.make: * * [build/logging.o] μ€λ₯ 127
λ¨μΌ μ€λ λ xgboost λΉλ μ±κ³΅
λ©ν° μ€λ λ λ²μ μ μνλ κ²½μ°
doc/build.mdμ μΆκ° μ§μΉ¨μ μ°Έμ‘°νμΈμ.
μμΆμ (κ°μ₯ μ΅κ·Ό νΈμΆ λ§μ§λ§):
νμΌ "
νμΌ "/private/var/folders/m3/yqpf5xhs1rxbzyh_hz4lhx040000gn/T/pip-build-cEIF0a/xgboost/setup.py", 29ν
LIB_PATH = λΌμ΄λΈλ¬λ¦¬ κ²½λ‘ 'find_lib_path'
νμΌ "/private/var/folders/m3/yqpf5xhs1rxbzyh_hz4lhx040000gn/T/pip-build-cEIF0a/xgboost/xgboost/libpath.py", λΌμΈ 45, find_lib_path
'c ν보 λͺ©λ‘ :n ' + ('n'.join(dll_path)))
**builtin.XGBoostLibraryNotFound: ν보 κ²½λ‘μμ XGBoost Libararyλ₯Ό μ°Ύμ μ μμ΅λλ€. μ»΄νμΌλ¬λ₯Ό μ€μΉνκ³ λ£¨νΈ κ²½λ‘μμ build.shλ₯Ό μ€ννμ΅λκΉ?
ν보μ λͺ©λ‘:
/private/var/folders/m3/yqpf5xhs1rxbzyh_hz4lhx040000gn/T/pip-build-cEIF0a/xgboost/xgboost/libxgboost.so
/private/var/folders/m3/yqpf5xhs1rxbzyh_hz4lhx040000gn/T/pip-build-cEIF0a/xgboost/xgboost/../../lib/libxgboost.so
/private/var/folders/m3/yqpf5xhs1rxbzyh_hz4lhx040000gn/T/pip-build-cEIF0a/xgboost/xgboost/./lib/libxgboost.so
"python setup.py egg_info" λͺ λ Ήμ΄ /private/var/folders/m3/yqpf5xhs1rxbzyh_hz4lhx040000gn/T/pip-build-cEIF0a/xgboost/μ μ€λ₯ μ½λ 1κ³Ό ν¨κ» μ€ν¨νμ΅λλ€.
homebrewλ₯Ό μ
λ°μ΄νΈν ν μ€λ₯ μ½λμ μΆλ ₯μ λ€μκ³Ό κ°μ΅λλ€.
$ pip μ€μΉ xgboost
xgboost μμ§
'NewConnectionError('μ μν΄ μ°κ²°μ΄ λμ΄μ§ ν μ¬μλ(Retry(total=4, connect=None, read=None, redirect=None))
'NewConnectionError('λ‘ μΈν΄ μ°κ²°μ΄ λμ΄μ§ ν μ¬μλ(Retry(total=3, connect=None, read=None, redirect=None))
'NewConnectionError('λ‘ μΈν΄ μ°κ²°μ΄ λμ΄μ§ ν μ¬μλ(Retry(total=2, connect=None, read=None, redirect=None))
'NewConnectionError('λ‘ μΈν΄ μ°κ²°μ΄ λμ΄μ§ ν μ¬μλ(Retry(total=1, connect=None, read=None, redirect=None))
'NewConnectionError('λ‘ μΈν΄ μ°κ²°μ΄ λμ΄μ§ ν μ¬μλ(Retry(total=0, connect=None, read=None, redirect=None))
xgboost μꡬ μ¬νμ μΆ©μ‘±νλ λ²μ μ μ°Ύμ μ μμ΅λλ€(λ²μ μμ: ).
xgboostμ λν΄ μΌμΉνλ λ°°ν¬νμ μ°Ύμ μ μμ΅λλ€.
@rayquazasnow which clang-omp++
λ₯Ό μλνκ³ κ²°κ³Όλ₯Ό λ³Ό μ μμ΅λκΉ? λ€μκ³Ό κ°μμΌ ν©λλ€. κ·Έλ μ§ μμΌλ©΄ μ€μΉκ° μλνμ§ μμ΅λλ€.
$ which clang-omp++
/usr/local/bin/clang-omp++
@phunterlau which clang-omp++
λν μλ΅μ΄ μμ΅λλ€. μ€μΉκ° μ λ κ² κ°μ΅λλ€.
$ brew install --with-clang llvm
/usr/local/bin/brew: 28ν: /usr/local/Library/Homebrew/brew.sh: ν΄λΉ νμΌμ΄λ λλ ν λ¦¬κ° μμ΅λλ€.
$ μμ‘° μ€μΉ clang++
/usr/local/bin/brew: 28ν: /usr/local/Library/Homebrew/brew.sh: ν΄λΉ νμΌμ΄λ λλ ν λ¦¬κ° μμ΅λλ€.
$ μ΄λ€ μ리
/usr/bin/clang
$ μ΄λ llvm
$ which clang++
/usr/bin/clang++
@rayquazasnow brew
λ¨Όμ μ€μΉνκ±°λ λ€μ μ€μΉνκ³ μΆμ μλ μμ΅λλ€. brew
μ€μΉκ° μμλ κ² κ°μ΅λλ€.
brew install gcc6 --without-multilib
. κ·Έλ κ² ν΄μ μ±κ³΅νμ΅λλ€.
Macμμ clang-omp λλ gccκ° νμν μ΄μ λ₯Ό μ λͺ¨λ₯΄κ² μ΅λλ€.
λ‘κ·Έμ λ¨μΌ μ€λ λ λ²μ μ΄ λΉλλμμ§λ§ μ¬μ ν λΌμ΄λΈλ¬λ¦¬λ₯Ό μ°Ύμ μ μλ€κ³ λμ μμ΅λλ€.
κ·Έκ²μ λ§νλ€:
Successfully build single-thread xgboost
If you want multi-threaded version
See additional instructions in doc/build.md
κ·Έλ¬λ λ§μΉ¨λ΄ μ 곡ν©λλ€:
__builtin__.XGBoostLibraryNotFound: Cannot find XGBoost Libarary in the candicate path, did you install compilers and run build.sh in root path?
List of candidates:
/private/var/folders/m3/yqpf5xhs1rxbzyh_hz4lhx040000gn/T/pip-build-cEIF0a/xgboost/xgboost/libxgboost.so
/private/var/folders/m3/yqpf5xhs1rxbzyh_hz4lhx040000gn/T/pip-build-cEIF0a/xgboost/xgboost/../../lib/libxgboost.so
/private/var/folders/m3/yqpf5xhs1rxbzyh_hz4lhx040000gn/T/pip-build-cEIF0a/xgboost/xgboost/./lib/libxgboost.so
κ·Έλμ λ΄κ° λ³Ό λ λ¬Έμ λ λ€λ₯Έ κ²μ λλ€. λ¨μΌ μ€λ λ λ²μ μΌλ‘ xgboostλ₯Ό μ€μΉν΄μΌ ν©λλ€.
gccλ clang-omp++ μμ΄ gitμμ xgboostλ₯Ό μ€μΉν μ μμ΅λλ€ ... bash build.sh
@AbdealiJK gcc
λλ clang-omp
κ° μμΌλ©΄ μ€ν¬λ¦½νΈλ λ¨μΌ μ€λ λλ§ μ§μνκ³ XGBoost
μ μ΄μ μ μλ Xcode
μμ κΈ°λ³Έ clang
λ₯Ό νΈμΆν©λλ€. XGBoost
λ³λ ¬ν.
@phunterlau μ μ μΌλ‘ λμνμ§λ§ μ€μΉ μ€ν¨κ° λ°μνλ μ΄μ λ₯Ό λͺ¨λ₯΄κ² μ΅λλ€. μ μ€λ₯κ° λ°μνλμ§ μ΄ν΄ν μ μμ΅λλ€.
__builtin__.XGBoostLibraryNotFound: ν보 κ²½λ‘μμ XGBoost λΌμ΄λΈλ¬λ¦¬λ₯Ό μ°Ύμ μ μμ΅λλ€. μ»΄νμΌλ¬λ₯Ό μ€μΉνκ³ λ£¨νΈ κ²½λ‘μμ build.shλ₯Ό μ€ννμ΅λκΉ?
@phunterlau λλ λ¬Έμ λ₯Ό μ΄ν΄νκΈ° μν΄ pypi ν¨ν€μ§λ₯Ό νμΈνκ³ μμκ³ openmp μμ΄ makeλ₯Ό νΈμΆνλ λ°©λ²μ΄ μ ν¨νμ§ μλ€λ κ²μ λ°κ²¬νμ΅λλ€(κ·Έλ¦¬κ³ νμ -fopenmpλ₯Ό μ¬μ©νμ΅λλ€). κ·Έλ¦¬κ³ κΈ°λ³Έ gcc/g++λ κ²°μ½ μ΅μ μ΄ μλμμ΅λλ€.
μ΄ diffλ‘ μμ νλ©΄ μ μκ² ν¨κ³Όμ μ΄μμ΅λλ€.
--- a/xgboost-0.6a2/xgboost/Makefile
+++ b/xgboost-0.6a2_modified/xgboost/Makefile
@@ -43,8 +43,8 @@ endif
# it is useful for pip install compiling-on-the-fly
OS := $(shell uname)
ifeq ($(OS), Darwin)
-export CC = $(if $(shell which gcc-5),gcc-5,clang-omp)
-export CXX = $(if $(shell which g++-5),g++-5,clang-omp++)
+export CC = $(if $(shell which gcc-5),gcc-5,$(if $(shell which clang-omp),clang-omp,gcc))
+export CXX = $(if $(shell which g++-5),g++-5,$(if $(shell which clang-omp++),clang-omp++,g++))
endif
--- a/xgboost-0.6a2/xgboost/build-python.sh
+++ b/xgboost-0.6a2_modified/xgboost/build-python.sh
@@ -22,7 +22,7 @@ else
echo "Building multi-thread xgboost failed"
echo "Start to build single-thread xgboost"
make clean
- make lib/libxgboost.so -j4 no_omp=1
+ make lib/libxgboost.so -j4 config=make/minimum.mk
echo "Successfully build single-thread xgboost"
echo "If you want multi-threaded version"
echo "See additional instructions in doc/build.md"
export LDFLAGS= -pthread -lm $(ADD_LDFLAGS) $(DMLC_LDFLAGS) $(PLUGIN_LDFLAGS)
@AbdealiJK κ°μ¬ν©λλ€. PyPI
μ makefileμ λΉ λ₯΄κ³ λλ¬μ΄ λ°©μμ΄μκ³ λͺ¨λ μλ리μ€λ₯Ό κ³ λ €νμ§ μμμ΅λλ€. μ
λ°μ΄νΈλ₯Ό μν΄ PRμ 보λ΄μκ² μ΅λκΉ?
νκ³ μΆμ§λ§ 무μμ μμ ν΄μΌ ν μ§ μ λͺ¨λ₯΄κ² μ΅λλ€. github build.shμ Makefileμ΄ μ¬λ°λ₯Έ λ²μ μ μ¬μ©νκΈ° λλ¬Έμ λλ€.
pypi ν¨ν€μ§λ githubμ κ΅¬μ‘°κ° λ€λ₯΄κ³ νμΌμ΄ λ€λ₯Έ κ² κ°μ΅λλ€(μ λ°μ΄νΈν΄μΌ ν μλ μμ΅λκΉ?)
@AbdealiJK μ€, μ΄μ κΈ°μ΅ν©λλ€. PyPI
λ²μ μ΄ μ½κ° ꡬμμ΄μκ³ Makefile μμ μ μ μμ±λμμ΅λλ€. μ
λ°μ΄νΈνκ² μ΅λλ€. κ°μ¬ ν΄μ.
곡μ μ¬μ λΉλ ν ν¨ν€μ§λ₯Ό pypiμ μ λ‘λνλ κ²μ κ³ λ €νμκ² μ΅λκΉ? κ·Έκ²μ μλμ°μ λ§₯ μ¬μ©μ μ€μΉλ₯Ό λ μ½κ² λ§λ€ κ²μ λλ€. μ΄μ Windows μ¬μ©μλ http://www.lfd.uci.edu/~gohlke/pythonlibs/#xgboost μμ λΉκ³΅μ λΉλλ₯Ό μ»μ μ μμ΅λλ€
@xgdgsc 미리 μ»΄νμΌλ ν¨ν€μ§κ° μ’μ΅λλ€. Windows 미리 μ»΄νμΌλ ν¨ν€μ§κ° κ·ν λλ κ·νκ° μλ μ¬λμ΄ λ§λ κ²μ λκΉ? λ€λ₯Έ μ¬λλ€μ΄ μ¬μ©ν μ μλλ‘ κ³΅μ κ°μ΄λλΌμΈμ λ μνΌλ₯Ό μΆκ°ν μ μλμ? Windows λ²μ μ μ€μΉν λ μ΄ λ¬Έμ λͺ©λ‘μμ λ§μ μ΄λ €μμ κ²ͺμμ΅λλ€. Mac/Linuxμ©μΌλ‘ 미리 μ»΄νμΌλ PyPI λΉλμ κ΄ν΄μλ PyPIκ° νλ«νΌ κ°μ μ°¨μ΄λ₯Ό μλ €μ£Όμ§ μκΈ° λλ¬Έμ λΆλ¦¬ν΄μΌ ν©λλ€. νλ§λλ‘ μ’μ μκ°μ λλ€.
κ·Έ ν¨ν€μ§λ λλ λ΄κ° μλ μ¬λμ΄ λ§λ κ²μ΄ μλμ§λ§ κ·Έ νμ΄μ§λ Windows python μ¬μ©μλ€ μ¬μ΄μμ μ λͺ ν©λλ€. μ¬κΈ°μ νλ κ²μ²λΌ 미리 μ»΄νμΌλ ν¨ν€μ§λ₯Ό pypiμ μ λ‘λνλ κ²μ΄ μ’μ΅λλ€. Pipμ μ¬μ©μκ° μ€μΉν λ μλμΌλ‘ μ€λ₯Έμͺ½ ν ν¨ν€μ§λ₯Ό μ νν©λλ€. μ΄ λ°©λ²μΌλ‘ 미리 λΉλλ λ°μ΄λ리λ₯Ό λ‘λνμ§ λͺ»ν κ²½μ° VC μ¬λ°°ν¬ ν¨ν€μ§λ₯Ό μ€μΉνλΌλ κ²½κ³ λ₯Ό μΆκ°ν©λλ€. λ λ€λ₯Έ μ΅μ μ conda-forgeλ₯Ό μ¬μ©νμ¬ aconda μ¬μ©μλ₯Ό μν ν¨ν€μ§λ₯Ό λΉλνλ κ²μ λλ€.
xgboostλ₯Ό μ€μΉνλ €κ³ νλλ° λ€μμ΄ κ²°κ³Όμ λλ€.
[ root@hostname bdinstalldir]# pip2.7 xgboost μ€μΉ
xgboost λ€μ΄λ‘λ/νκΈ°
xgboost μꡬ μ¬νμ μΆ©μ‘±νλ λ²μ μ μ°Ύμ μ μμ 0.6a1, 0.4a21, 0.4a13, 0.4a18, 0.4a24, 0.4a20, 0.4a27)
μ²μ...
xgboost λ²μ κ³Ό μΌμΉνλ λ°°ν¬ν μμ
/root/.pip/pip.logμ μ€ν¨μ λν λλ²κ·Έ λ‘κ·Έ μ μ₯
[ root@hostname bdinstalldir]#
gccλ₯Ό νμΈνμΌλ©° λ Έλμ λ€μ gccκ° μμ΅λλ€.
[ root@hostname bdinstalldir]# rpm -qa | grep -i gcc
gcc-4.4.7-17.el6.x86_64
libgcc-4.4.7-17.el6.x86_64
compat-gcc-34-c++-3.4.6-19.el6.x86_64
gcc-gnat-4.4.7-17.el6.x86_64
compat-gcc-34-3.4.6-19.el6.x86_64
libgcc-4.4.7-17.el6.i686
gcc-java-4.4.7-17.el6.x86_64
devtoolset-3-gcc-c++-4.9.1-10.el6.x86_64
gcc-c++-4.4.7-17.el6.x86_64
gcc-gfortran-4.4.7-17.el6.x86_64
gcc-objc++-4.4.7-17.el6.x86_64
devtoolset-3-gcc-4.9.1-10.el6.x86_64
gcc-objc-4.4.7-17.el6.x86_64
[ root@hostname μ¬μ΄νΈ ν¨ν€μ§]# xgboost.__file__ μΈμ
-bash: μΈμ: λͺ
λ Ήμ μ°Ύμ μ μμ
[ root@hostname μ¬μ΄νΈ ν¨ν€μ§]#
--pre μ΅μ μΌλ‘ μλνμ§λ§ μλμ κ°μ΄ μλνμ§ μμμ΅λλ€.
[λ£¨νΈ @νΈμ€νΈ μ΄λ¦ bdinstalldir]# pip2.7 μ€μΉ --pre xgboost
xgboost λ€μ΄λ‘λ/νκΈ°
xgboost-0.6a2.tar.gz(1.2MB) λ€μ΄λ‘λ: 1.2MB λ€μ΄λ‘λ
xgboost ν¨ν€μ§μ λν setup.py(κ²½λ‘:/tmp/pip_build_root/xgboost/setup.py) egg_info μ€ν
rm -f -rf λΉλ build_plugin λΌμ΄λΈλ¬λ¦¬ bin ~ */ ~ / / ~ */ / / ~ / .o / / .o */ / / .o xgboost
g++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/learner.o src /νμ΅μ.cc >λΉλ/νμ΅μ.d
g++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT λΉλ/λ‘κΉ
.o src /logging.cc >build/logging.d
g++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT λΉλ/c_api/c_api. o src/c_api/c_api.cc > λΉλ/c_api/c_api.d
g++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT λΉλ/c_api/c_api_error. o src/c_api/c_api_error.cc > λΉλ/c_api/c_api_error.d
g++ -c -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -c src/c_api/c_api_error. cc -o λΉλ/c_api/c_api_error.o
g++ -c -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -c src/logging.cc - o λΉλ/λ‘κΉ
.o
g++ -c -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -c src/c_api/c_api. cc -o λΉλ/c_api/c_api.o
g++ -c -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -c src/learner.cc - o λΉλ/νμ΅μ.o
src/c_api/./c_api_error.h:9μ ν¬ν¨λ νμΌμμ,
src/c_api/c_api_error.cc:6μμ:
dmlc-core/include/dmlc/base.h:71: μ°Έκ³ : #pragma λ©μμ§: dmlc-coreμ λͺ¨λ κΈ°λ₯μ μ»΄νμΌνλ €λ©΄ g++-4.6 μ΄μμ΄ νμν©λλ€. c++0x μμ΄ μ»΄νμΌνλ©΄ μΌλΆ κΈ°λ₯μ΄ λΉνμ±νλ μ μμ΅λλ€.
include/xgboost/data.h:10μ ν¬ν¨λ νμΌμμ,
src/c_api/c_api.cc:3μμ:
dmlc-core/include/dmlc/base.h:71: μ°Έκ³ : #pragma λ©μμ§: dmlc-coreμ λͺ¨λ κΈ°λ₯μ μ»΄νμΌνλ €λ©΄ g++-4.6 μ΄μμ΄ νμν©λλ€. C++0x μμ΄ μ»΄νμΌνλ©΄ μΌλΆ κΈ°λ₯μ΄ λΉνμ±νλ μ μμ΅λλ€.
dmlc-core/include/dmlc/logging.h:15μ ν¬ν¨λ νμΌμμ
include/xgboost/logging.h:11μμ,
src/leaner.cc:7μμ:
dmlc-core/include/dmlc/./base.h:71: μ°Έκ³ : #pragma λ©μμ§: dmlc-coreμ λͺ¨λ κΈ°λ₯μ μ»΄νμΌνλ €λ©΄ g++-4.6 μ΄μμ΄ νμν©λλ€. C++0x μμ΄ μ»΄νμΌνλ©΄ μΌλΆ κΈ°λ₯μ΄ λΉνμ±νλ μ μμ΅λλ€.
dmlc-core/include/dmlc/logging.h:15μ ν¬ν¨λ νμΌμμ
include/xgboost/logging.h:11μμ,
src/logging.cc:7μμ:
dmlc-core/include/dmlc/./base.h:71: μ°Έκ³ : #pragma λ©μμ§: dmlc-coreμ λͺ¨λ κΈ°λ₯μ μ»΄νμΌνλ €λ©΄ g++-4.6 μ΄μμ΄ νμν©λλ€. C++0x μμ΄ μ»΄νμΌνλ©΄ μΌλΆ κΈ°λ₯μ΄ λΉνμ±νλ μ μμ΅λλ€.
src/c_api/c_api_error.cc:7μ ν¬ν¨λ νμΌ:
src/c_api/../common/thread_local.h: μ μ λ©€λ² ν¨μ 'μ μ T* xgboost::common::ThreadLocalStore
src/c_api/../common/thread_local.h:44: μ€λ₯: 'nullptr'μ΄ μ΄ λ²μμμ μ μΈλμ§ μμμ΅λλ€.
make: * [build/c_api/c_api_error.o] μ€λ₯ 1make: λλμ§ μμ μμ
μ κΈ°λ€λ¦¬λ©°....
src/c_api/c_api.cc:3μ ν¬ν¨λ νμΌ:
include/xgboost/data.h: μμ±μ 'xgboost::DMatrix::DMatrix()':
include/xgboost/data.h:234: μ€λ₯: 'nullptr'μ΄ μ΄ λ²μμμ μ μΈλμ§ μμμ΅λλ€.
src/c_api/c_api.cc:15μ ν¬ν¨λ νμΌ:
src/c_api/../data/simple_csr_source.h: μ μ λ²μμμ:
src/c_api/../data/simple_csr_source.h:65: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/c_api/../data/simple_csr_source.h:67: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/c_api/../data/simple_csr_source.h:69: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/c_api/c_api.cc:16μ ν¬ν¨λ νμΌ:
src/c_api/../common/thread_local.h: μ μ λ©€λ² ν¨μ 'μ μ T xgboost::common::ThreadLocalStore
src/c_api/../common/thread_local.h:44: μ€λ₯: 'nullptr'μ΄ μ΄ λ²μμμ μ μΈλμ§ μμμ΅λλ€.
include/xgboost/./gbm.h:17μ ν¬ν¨λ νμΌμμ,
include/xgboost/leaner.h:16μμ,
src/leaner.cc:8μμ:
include/xgboost/././data.h: μμ±μ 'xgboost::DMatrix::DMatrix()':
include/xgboost/././data.h:234: μ€λ₯: 'nullptr'μ΄ μ΄ λ²μμμ μ μΈλμ§ μμμ΅λλ€.
src/c_api/c_api.cc:18μ ν¬ν¨λ νμΌ:
src/c_api/../common/io.h: μ μ λ²μμμ:
src/c_api/../common/io.h:30: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/c_api/c_api.cc:267: μ€λ₯: ';' μμλ¨ μ€μ λ μ μ
src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/c_api/c_api.cc:18μ ν¬ν¨λ νμΌ:
src/c_api/../common/io.h: μμ±μ 'xgboost::common::PeekableInStream::PeekableInStream(dmlc::Stream )'μμ:src/c_api/../common/io.h:28: μ€λ₯: 'xgboost::common::PeekableInStream' ν΄λμ€μ 'strm_'μ΄λΌλ νλκ° μμ΅λλ€.src/c_api/../common/io.h:28: μ€λ₯: 'xgboost::common::PeekableInStream' ν΄λμ€μ 'buffer_ptr_'μ΄λΌλ νλκ° μμ΅λλ€.src/c_api/c_api.cc: μ μ λ²μμμ:src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μ μ κ·μ λμ§ μμ IDκ° μμλ¨src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μ μ μ μΈμ΄ μμλ¨src/leaner.cc:17μ ν¬ν¨λ νμΌ:src/./common/io.h: μ μ λ²μμμ:src/./common/io.h:30: μ€λ₯: ';' μμλ¨
μ€ λ μ μsrc/leaner.cc:484: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.src/leaner.cc:17μ ν¬ν¨λ νμΌ:src/./common/io.h: μμ±μ 'xgboost::common::PeekableInStream::PeekableInStream(dmlc::Stream )'μμ:
src/./common/io.h:28: μ€λ₯: 'xgboost::common::PeekableInStream' ν΄λμ€μ 'strm_'μ΄λΌλ νλκ° μμ΅λλ€.
src/./common/io.h:28: μ€λ₯: ν΄λμ€ 'xgboost::common::PeekableInStream'μ 'buffer_ptr_'μ΄λΌλ νλκ° μμ΅λλ€.
src/leaner.cc: μ μ λ²μ:
src/learner.cc:484: μ€λ₯: μ€ λ μ μ κ·μ λμ§ μμ IDκ° μμλ¨
src/leaner.cc:484: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/leaner.cc:484: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/leaner.cc:484: μ€λ₯: μ€ λ μ μ μ μΈμ΄ μμλ¨
make: * [build/c_api/c_api.o] μ€λ₯ 1make: [build/learner.o] μ€λ₯ 1
--------------------------
λ€μ€ μ€λ λ xgboost λΉλ μ€ν¨
λ¨μΌ μ€λ λ xgboost λΉλ μμ
rm -f -rf λΉλ build_plugin λΌμ΄λΈλ¬λ¦¬ λΉ *~ */~ / / ~ */ / / ~ / .o / / .o */ / / .o xgboost
g++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/learner.o src /νμ΅μ.cc >λΉλ/νμ΅μ.d
g++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/logging.o src /logging.cc >build/logging.d
g++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT λΉλ/c_api/c_api. o src/c_api/c_api.cc > λΉλ/c_api/c_api.d
g++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT λΉλ/c_api/c_api_error. o src/c_api/c_api_error.cc > λΉλ/c_api/c_api_error.d
g++ -c -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -c src/c_api/c_api_error. cc -o λΉλ/c_api/c_api_error.o
g++ -c -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -c src/learner.cc - o λΉλ/νμ΅μ.o
g++ -c -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -c src/c_api/c_api. cc -o λΉλ/c_api/c_api.o
g++ -c -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -c src/logging.cc - o λΉλ/λ‘κΉ
.o
src/c_api/./c_api_error.h:9μ ν¬ν¨λ νμΌμμ,
src/c_api/c_api_error.cc:6μμ:
dmlc-core/include/dmlc/base.h:71: μ°Έκ³ : #pragma λ©μμ§: dmlc-coreμ λͺ¨λ κΈ°λ₯μ μ»΄νμΌνλ €λ©΄ g++-4.6 μ΄μμ΄ νμν©λλ€. C++0x μμ΄ μ»΄νμΌνλ©΄ μΌλΆ κΈ°λ₯μ΄ λΉνμ±νλ μ μμ΅λλ€.
include/xgboost/data.h:10μ ν¬ν¨λ νμΌμμ,
src/c_api/c_api.cc:3μμ:
dmlc-core/include/dmlc/base.h:71: μ°Έκ³ : #pragma λ©μμ§: dmlc-coreμ λͺ¨λ κΈ°λ₯μ μ»΄νμΌνλ €λ©΄ g++-4.6 μ΄μμ΄ νμν©λλ€. C++0x μμ΄ μ»΄νμΌνλ©΄ μΌλΆ κΈ°λ₯μ΄ λΉνμ±νλ μ μμ΅λλ€.
dmlc-core/include/dmlc/logging.h:15μ ν¬ν¨λ νμΌμμ
include/xgboost/logging.h:11μμ,
src/logging.cc:7μμ:
dmlc-core/include/dmlc/./base.h:71: μ°Έκ³ : #pragma λ©μμ§: dmlc-coreμ λͺ¨λ κΈ°λ₯μ μ»΄νμΌνλ €λ©΄ g++-4.6 μ΄μμ΄ νμν©λλ€. C++0x μμ΄ μ»΄νμΌνλ©΄ μΌλΆ κΈ°λ₯μ΄ λΉνμ±νλ μ μμ΅λλ€.
dmlc-core/include/dmlc/logging.h:15μ ν¬ν¨λ νμΌμμ,
include/xgboost/logging.h:11μμ,
src/leaner.cc:7μμ:
dmlc-core/include/dmlc/./base.h:71: μ°Έκ³ : #pragma λ©μμ§: dmlc-coreμ λͺ¨λ κΈ°λ₯μ μ»΄νμΌνλ €λ©΄ g++-4.6 μ΄μμ΄ νμν©λλ€. C++0x μμ΄ μ»΄νμΌνλ©΄ μΌλΆ κΈ°λ₯μ΄ λΉνμ±νλ μ μμ΅λλ€.
src/c_api/c_api_error.cc:7μ ν¬ν¨λ νμΌ:
src/c_api/../common/thread_local.h: μ μ λ©€λ² ν¨μ 'μ μ T* xgboost::common::ThreadLocalStore
src/c_api/../common/thread_local.h:44: μ€λ₯: 'nullptr'μ΄ μ΄ λ²μμμ μ μΈλμ§ μμμ΅λλ€.
make: * [build/c_api/c_api_error.o] μ€λ₯ 1make: λλμ§ μμ μμ
μ κΈ°λ€λ¦¬λ©°....
include/xgboost/./gbm.h:17μ ν¬ν¨λ νμΌμμ,
include/xgboost/leaner.h:16μμ,
src/leaner.cc:8μμ:
include/xgboost/././data.h: μμ±μ 'xgboost::DMatrix::DMatrix()':
include/xgboost/././data.h:234: μ€λ₯: 'nullptr'μ΄ μ΄ λ²μμμ μ μΈλμ§ μμμ΅λλ€.
src/c_api/c_api.cc:3μ ν¬ν¨λ νμΌ:
include/xgboost/data.h: μμ±μ 'xgboost::DMatrix::DMatrix()':
include/xgboost/data.h:234: μ€λ₯: 'nullptr'μ΄ μ΄ λ²μμμ μ μΈλμ§ μμμ΅λλ€.
src/leaner.cc:17μ ν¬ν¨λ νμΌ:
src/./common/io.h: μ μ λ²μμμ:
src/./common/io.h:30: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/leaner.cc:484: μ€λ₯: ';' μμλ¨ μ€ λ μ μ
src/leaner.cc:484: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/leaner.cc:17μ ν¬ν¨λ νμΌ:
src/./common/io.h: μμ±μ 'xgboost::common::PeekableInStream::PeekableInStream(dmlc::Stream)'μμ:
src/./common/io.h:28: μ€λ₯: 'xgboost::common::PeekableInStream' ν΄λμ€μ 'strm_'μ΄λΌλ νλκ° μμ΅λλ€.
src/./common/io.h:28: μ€λ₯: ν΄λμ€ 'xgboost::common::PeekableInStream'μ 'buffer_ptr_'μ΄λΌλ νλκ° μμ΅λλ€.
src/leaner.cc: μ μ λ²μ:
src/learner.cc:484: μ€λ₯: μ€ λ μ μ κ·μ λμ§ μμ IDκ° μμλ¨
src/leaner.cc:484: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/leaner.cc:484: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/leaner.cc:484: μ€λ₯: μ€ λ μ μ μ μΈν΄μΌ ν¨
src/c_api/c_api.cc:15μ ν¬ν¨λ νμΌ:
src/c_api/../data/simple_csr_source.h: μ μ λ²μμμ:
src/c_api/../data/simple_csr_source.h:65: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/c_api/../data/simple_csr_source.h:67: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/c_api/../data/simple_csr_source.h:69: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/c_api/c_api.cc:16μ ν¬ν¨λ νμΌ:
src/c_api/../common/thread_local.h: μ μ λ©€λ² ν¨μ 'μ μ T* xgboost::common::ThreadLocalStore
src/c_api/../common/thread_local.h:44: μ€λ₯: 'nullptr'μ΄ μ΄ λ²μμμ μ μΈλμ§ μμμ΅λλ€.
src/c_api/c_api.cc:18μ ν¬ν¨λ νμΌ:
src/c_api/../common/io.h: μ μ λ²μμμ:
src/c_api/../common/io.h:30: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/c_api/c_api.cc:267: μ€λ₯: ';' μμλ¨ μ€ λ μ μ
src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/c_api/c_api.cc:18μ ν¬ν¨λ νμΌ:
src/c_api/../common/io.h: μμ±μ 'xgboost::common::PeekableInStream::PeekableInStream(dmlc::Stream )'μμ:src/c_api/../common/io.h:28: μ€λ₯: 'xgboost::common::PeekableInStream' ν΄λμ€μ 'strm_'μ΄λΌλ νλκ° μμ΅λλ€.src/c_api/../common/io.h:28: μ€λ₯: 'xgboost::common::PeekableInStream' ν΄λμ€μ 'buffer_ptr_'μ΄λΌλ νλκ° μμ΅λλ€.src/c_api/c_api.cc: μ μ λ²μμμ:src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μ μ μ κ·νλμ§ μμ IDκ° μμλ©λλ€.src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μ μ μ μΈμ΄ μμλ¨make: [build/learner.o] μ€λ₯ 1
make: [build/c_api/c_api.o] μ€λ₯ 1λ¨μΌ μ€λ λ xgboost λΉλ μ±κ³΅λ©ν° μ€λ λ λ²μ μ μνλ κ²½μ°doc/build.mdμ μΆκ° μ§μΉ¨μ μ°Έμ‘°νμΈμ.μμΆμ (κ°μ₯ μ΅κ·Ό νΈμΆ λ§μ§λ§):νμΌ "
g++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/learner.o src /νμ΅μ.cc >λΉλ/νμ΅μ.d
g++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/logging.o src /logging.cc >build/logging.d
g++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT λΉλ/c_api/c_api. o src/c_api/c_api.cc > λΉλ/c_api/c_api.d
g++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT λΉλ/c_api/c_api_error. o src/c_api/c_api_error.cc > λΉλ/c_api/c_api_error.d
g++ -c -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -c src/c_api/c_api_error. cc -o λΉλ/c_api/c_api_error.o
g++ -c -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -c src/logging.cc - o λΉλ/λ‘κΉ .o
g++ -c -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -c src/c_api/c_api. cc -o λΉλ/c_api/c_api.o
g++ -c -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -c src/learner.cc - o λΉλ/νμ΅μ.o
src/c_api/./c_api_error.h:9μ ν¬ν¨λ νμΌμμ,
from src/c_api/c_api_error.cc:6:
dmlc-core/include/dmlc/base.h:71: μ°Έκ³ : #pragma λ©μμ§: dmlc-coreμ λͺ¨λ κΈ°λ₯μ μ»΄νμΌνλ €λ©΄ g++-4.6 μ΄μμ΄ νμν©λλ€. C++0x μμ΄ μ»΄νμΌνλ©΄ μΌλΆ κΈ°λ₯μ΄ λΉνμ±νλ μ μμ΅λλ€.
include/xgboost/data.h:10μ ν¬ν¨λ νμΌμμ,
from src/c_api/c_api.cc:3:
dmlc-core/include/dmlc/base.h:71: μ°Έκ³ : #pragma λ©μμ§: dmlc-coreμ λͺ¨λ κΈ°λ₯μ μ»΄νμΌνλ €λ©΄ g++-4.6 μ΄μμ΄ νμν©λλ€. C++0x μμ΄ μ»΄νμΌνλ©΄ μΌλΆ κΈ°λ₯μ΄ λΉνμ±νλ μ μμ΅λλ€.
dmlc-core/include/dmlc/logging.h:15μ ν¬ν¨λ νμΌμμ,
from include/xgboost/logging.h:11,
from src/learner.cc:7:
dmlc-core/include/dmlc/./base.h:71: μ°Έκ³ : #pragma λ©μμ§: dmlc-coreμ λͺ¨λ κΈ°λ₯μ μ»΄νμΌνλ €λ©΄ g++-4.6 μ΄μμ΄ νμν©λλ€. C++0x μμ΄ μ»΄νμΌνλ©΄ μΌλΆ κΈ°λ₯μ΄ λΉνμ±νλ μ μμ΅λλ€.
dmlc-core/include/dmlc/logging.h:15μ ν¬ν¨λ νμΌμμ,
from include/xgboost/logging.h:11,
from src/logging.cc:7:
dmlc-core/include/dmlc/./base.h:71: μ°Έκ³ : #pragma λ©μμ§: dmlc-coreμ λͺ¨λ κΈ°λ₯μ μ»΄νμΌνλ €λ©΄ g++-4.6 μ΄μμ΄ νμν©λλ€. C++0x μμ΄ μ»΄νμΌνλ©΄ μΌλΆ κΈ°λ₯μ΄ λΉνμ±νλ μ μμ΅λλ€.
src/c_api/c_api_error.cc:7μ ν¬ν¨λ νμΌ:
src/c_api/../common/thread_local.h: μ μ λ©€λ² ν¨μ 'μ μ T* xgboost::common::ThreadLocalStore
src/c_api/../common/thread_local.h:44: μ€λ₯: 'nullptr'μ΄ μ΄ λ²μμμ μ μΈλμ§ μμμ΅λλ€.
make: * [build/c_api/c_api_error.o] μ€λ₯ 1
make: * λλμ§ μμ μμ μ κΈ°λ€λ¦¬λ μ€....
src/c_api/c_api.cc:3μ ν¬ν¨λ νμΌ:
include/xgboost/data.h: μμ±μ 'xgboost::DMatrix::DMatrix()':
include/xgboost/data.h:234: μ€λ₯: 'nullptr'μ΄ μ΄ λ²μμμ μ μΈλμ§ μμμ΅λλ€.
src/c_api/c_api.cc:15μ ν¬ν¨λ νμΌ:
src/c_api/../data/simple_csr_source.h: μ μ λ²μμμ:
src/c_api/../data/simple_csr_source.h:65: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/c_api/../data/simple_csr_source.h:67: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/c_api/../data/simple_csr_source.h:69: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/c_api/c_api.cc:16μ ν¬ν¨λ νμΌ:
src/c_api/../common/thread_local.h: μ μ λ©€λ² ν¨μ 'μ μ T* xgboost::common::ThreadLocalStore
src/c_api/../common/thread_local.h:44: μ€λ₯: 'nullptr'μ΄ μ΄ λ²μμμ μ μΈλμ§ μμμ΅λλ€.
include/xgboost/./gbm.h:17μ ν¬ν¨λ νμΌμμ,
from include/xgboost/learner.h:16,
from src/learner.cc:8:
include/xgboost/././data.h: μμ±μ 'xgboost::DMatrix::DMatrix()':
include/xgboost/././data.h:234: μ€λ₯: 'nullptr'μ΄ μ΄ λ²μμμ μ μΈλμ§ μμμ΅λλ€.
src/c_api/c_api.cc:18μ ν¬ν¨λ νμΌ:
src/c_api/../common/io.h: μ μ λ²μμμ:
src/c_api/../common/io.h:30: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/c_api/c_api.cc:267: μ€λ₯: ';' μμλ¨ μ€ λ μ μ
src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/c_api/c_api.cc:18μ ν¬ν¨λ νμΌ:
src/c_api/../common/io.h: μμ±μ 'xgboost::common::PeekableInStream::PeekableInStream(dmlc::Stream*)'μμ:
src/c_api/../common/io.h:28: μ€λ₯: 'xgboost::common::PeekableInStream' ν΄λμ€μ 'strm_'μ΄λΌλ νλκ° μμ΅λλ€.
src/c_api/../common/io.h:28: μ€λ₯: 'xgboost::common::PeekableInStream' ν΄λμ€μ 'buffer_ptr_'μ΄λΌλ νλκ° μμ΅λλ€.
src/c_api/c_api.cc: μ μ λ²μμμ:
src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μ μ μ κ·νλμ§ μμ IDκ° μμλ¨
src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μ μ μ μΈμ΄ μμλ¨
src/leaner.cc:17μ ν¬ν¨λ νμΌ:
src/./common/io.h: μ μ λ²μμμ:
src/./common/io.h:30: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/leaner.cc:484: μ€λ₯: ';' μμλ¨ μ€ λ μ μ
src/leaner.cc:484: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/leaner.cc:17μ ν¬ν¨λ νμΌ:
src/./common/io.h: μμ±μ 'xgboost::common::PeekableInStream::PeekableInStream(dmlc::Stream*)'μμ:
src/./common/io.h:28: μ€λ₯: 'xgboost::common::PeekableInStream' ν΄λμ€μ 'strm_'μ΄λΌλ νλκ° μμ΅λλ€.
src/./common/io.h:28: μ€λ₯: ν΄λμ€ 'xgboost::common::PeekableInStream'μ 'buffer_ptr_'μ΄λΌλ νλκ° μμ΅λλ€.
src/leaner.cc: μ μ λ²μ:
src/learner.cc:484: μ€λ₯: μ€ λ μ μ κ·μ λμ§ μμ IDκ° μμλ¨
src/leaner.cc:484: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/leaner.cc:484: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/leaner.cc:484: μ€λ₯: μ€ λ μ μ μ μΈν΄μΌ ν¨
make: * [build/c_api/c_api.o] μ€λ₯ 1
make: * [build/learner.o] μ€λ₯ 1
λ€μ€ μ€λ λ xgboost λΉλ μ€ν¨
λ¨μΌ μ€λ λ xgboost λΉλ μμ
rm -f -rf λΉλ build_plugin λΌμ΄λΈλ¬λ¦¬ bin ~ */ ~ / / ~ */ / / ~ / .o / / .o */ / / .o xgboost
g++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/learner.o src /νμ΅μ.cc >λΉλ/νμ΅μ.d
g++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/logging.o src /logging.cc >build/logging.d
g++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT λΉλ/c_api/c_api. o src/c_api/c_api.cc > λΉλ/c_api/c_api.d
g++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT λΉλ/c_api/c_api_error. o src/c_api/c_api_error.cc > λΉλ/c_api/c_api_error.d
g++ -c -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -c src/c_api/c_api_error. cc -o λΉλ/c_api/c_api_error.o
g++ -c -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -c src/learner.cc - o λΉλ/νμ΅μ.o
g++ -c -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -c src/c_api/c_api. cc -o λΉλ/c_api/c_api.o
g++ -c -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -Idmlc-core/include -Irabit/include -fPIC -fopenmp -c src/logging.cc - o λΉλ/λ‘κΉ .o
src/c_api/./c_api_error.h:9μ ν¬ν¨λ νμΌμμ,
from src/c_api/c_api_error.cc:6:
dmlc-core/include/dmlc/base.h:71: μ°Έκ³ : #pragma λ©μμ§: dmlc-coreμ λͺ¨λ κΈ°λ₯μ μ»΄νμΌνλ €λ©΄ g++-4.6 μ΄μμ΄ νμν©λλ€. C++0x μμ΄ μ»΄νμΌνλ©΄ μΌλΆ κΈ°λ₯μ΄ λΉνμ±νλ μ μμ΅λλ€.
include/xgboost/data.h:10μ ν¬ν¨λ νμΌμμ,
from src/c_api/c_api.cc:3:
dmlc-core/include/dmlc/base.h:71: μ°Έκ³ : #pragma λ©μμ§: dmlc-coreμ λͺ¨λ κΈ°λ₯μ μ»΄νμΌνλ €λ©΄ g++-4.6 μ΄μμ΄ νμν©λλ€. C++0x μμ΄ μ»΄νμΌνλ©΄ μΌλΆ κΈ°λ₯μ΄ λΉνμ±νλ μ μμ΅λλ€.
dmlc-core/include/dmlc/logging.h:15μ ν¬ν¨λ νμΌμμ,
from include/xgboost/logging.h:11,
from src/logging.cc:7:
dmlc-core/include/dmlc/./base.h:71: μ°Έκ³ : #pragma λ©μμ§: dmlc-coreμ λͺ¨λ κΈ°λ₯μ μ»΄νμΌνλ €λ©΄ g++-4.6 μ΄μμ΄ νμν©λλ€. C++0x μμ΄ μ»΄νμΌνλ©΄ μΌλΆ κΈ°λ₯μ΄ λΉνμ±νλ μ μμ΅λλ€.
dmlc-core/include/dmlc/logging.h:15μ ν¬ν¨λ νμΌμμ,
from include/xgboost/logging.h:11,
from src/learner.cc:7:
dmlc-core/include/dmlc/./base.h:71: μ°Έκ³ : #pragma λ©μμ§: dmlc-coreμ λͺ¨λ κΈ°λ₯μ μ»΄νμΌνλ €λ©΄ g++-4.6 μ΄μμ΄ νμν©λλ€. C++0x μμ΄ μ»΄νμΌνλ©΄ μΌλΆ κΈ°λ₯μ΄ λΉνμ±νλ μ μμ΅λλ€.
src/c_api/c_api_error.cc:7μ ν¬ν¨λ νμΌ:
src/c_api/../common/thread_local.h: μ μ λ©€λ² ν¨μ 'μ μ T* xgboost::common::ThreadLocalStore
src/c_api/../common/thread_local.h:44: μ€λ₯: 'nullptr'μ΄ μ΄ λ²μμμ μ μΈλμ§ μμμ΅λλ€.
make: * [build/c_api/c_api_error.o] μ€λ₯ 1
make: * λλμ§ μμ μμ μ κΈ°λ€λ¦¬λ μ€....
include/xgboost/./gbm.h:17μ ν¬ν¨λ νμΌμμ,
from include/xgboost/learner.h:16,
from src/learner.cc:8:
include/xgboost/././data.h: μμ±μ 'xgboost::DMatrix::DMatrix()':
include/xgboost/././data.h:234: μ€λ₯: 'nullptr'μ΄ μ΄ λ²μμμ μ μΈλμ§ μμμ΅λλ€.
src/c_api/c_api.cc:3μ ν¬ν¨λ νμΌ:
include/xgboost/data.h: μμ±μ 'xgboost::DMatrix::DMatrix()':
include/xgboost/data.h:234: μ€λ₯: 'nullptr'μ΄ μ΄ λ²μμμ μ μΈλμ§ μμμ΅λλ€.
src/leaner.cc:17μ ν¬ν¨λ νμΌ:
src/./common/io.h: μ μ λ²μμμ:
src/./common/io.h:30: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/leaner.cc:484: μ€λ₯: ';' μμλ¨ μ€ λ μ μ
src/leaner.cc:484: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/leaner.cc:17μ ν¬ν¨λ νμΌ:
src/./common/io.h: μμ±μ 'xgboost::common::PeekableInStream::PeekableInStream(dmlc::Stream*)'μμ:
src/./common/io.h:28: μ€λ₯: 'xgboost::common::PeekableInStream' ν΄λμ€μ 'strm_'μ΄λΌλ νλκ° μμ΅λλ€.
src/./common/io.h:28: μ€λ₯: ν΄λμ€ 'xgboost::common::PeekableInStream'μ 'buffer_ptr_'μ΄λΌλ νλκ° μμ΅λλ€.
src/leaner.cc: μ μ λ²μ:
src/learner.cc:484: μ€λ₯: μ€ λ μ μ κ·μ λμ§ μμ IDκ° μμλ¨
src/leaner.cc:484: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/leaner.cc:484: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/leaner.cc:484: μ€λ₯: μ€ λ μ μ μ μΈν΄μΌ ν¨
src/c_api/c_api.cc:15μ ν¬ν¨λ νμΌ:
src/c_api/../data/simple_csr_source.h: μ μ λ²μμμ:
src/c_api/../data/simple_csr_source.h:65: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/c_api/../data/simple_csr_source.h:67: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/c_api/../data/simple_csr_source.h:69: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/c_api/c_api.cc:16μ ν¬ν¨λ νμΌ:
src/c_api/../common/thread_local.h: μ μ λ©€λ² ν¨μ 'μ μ T* xgboost::common::ThreadLocalStore
src/c_api/../common/thread_local.h:44: μ€λ₯: 'nullptr'μ΄ μ΄ λ²μμμ μ μΈλμ§ μμμ΅λλ€.
src/c_api/c_api.cc:18μ ν¬ν¨λ νμΌ:
src/c_api/../common/io.h: μ μ λ²μμμ:
src/c_api/../common/io.h:30: μ€λ₯: ';' μμλ¨ 'μ¬μ μ' μ μ
src/c_api/c_api.cc:267: μ€λ₯: ';' μμλ¨ μ€ λ μ μ
src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/c_api/c_api.cc:18μ ν¬ν¨λ νμΌ:
src/c_api/../common/io.h: μμ±μ 'xgboost::common::PeekableInStream::PeekableInStream(dmlc::Stream*)'μμ:
src/c_api/../common/io.h:28: μ€λ₯: 'xgboost::common::PeekableInStream' ν΄λμ€μ 'strm_'μ΄λΌλ νλκ° μμ΅λλ€.
src/c_api/../common/io.h:28: μ€λ₯: 'xgboost::common::PeekableInStream' ν΄λμ€μ 'buffer_ptr_'μ΄λΌλ νλκ° μμ΅λλ€.
src/c_api/c_api.cc: μ μ λ²μμμ:
src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μ μ μ κ·νλμ§ μμ IDκ° μμλ¨
src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μμ '}'κ° μμ΄μΌ ν©λλ€.
src/c_api/c_api.cc:267: μ€λ₯: μ€ λ μ μ μ μΈμ΄ μμλ¨
make: * [build/learner.o] μ€λ₯ 1
make: * [build/c_api/c_api.o] μ€λ₯ 1
λ¨μΌ μ€λ λ xgboost λΉλ μ±κ³΅
λ©ν° μ€λ λ λ²μ μ μνλ κ²½μ°
doc/build.mdμ μΆκ° μ§μΉ¨μ μ°Έμ‘°νμΈμ.
μμΆμ (κ°μ₯ μ΅κ·Ό νΈμΆ λ§μ§λ§):
νμΌ "
νμΌ "/tmp/pip_build_root/xgboost/setup.py", 29ν,
LIB_PATH = libpath['find_lib_path']()
find_lib_pathμ νμΌ "/tmp/pip_build_root/xgboost/xgboost/libpath.py", 45ν
'List of candidates:\n' + ('\n'.join(dll_path)))
__builtin__.XGBoostLibraryNotFound: ν보 κ²½λ‘μμ XGBoost λΌμ΄λΈλ¬λ¦¬λ₯Ό μ°Ύμ μ μμ΅λλ€. μ»΄νμΌλ¬λ₯Ό μ€μΉνκ³ λ£¨νΈ κ²½λ‘μμ build.shλ₯Ό μ€ννμ΅λκΉ?
ν보μ λͺ©λ‘:
/tmp/pip_build_root/xgboost/xgboost/libxgboost.so
/tmp/pip_build_root/xgboost/xgboost/../../lib/libxgboost.so
/tmp/pip_build_root/xgboost/xgboost/./lib/libxgboost.so
μ²μ...
/tmp/pip_build_root/xgboostμ μ€λ₯ μ½λ 1κ³Ό ν¨κ» python setup.py egg_info λͺ
λ Ήμ΄ μ€ν¨νμ΅λλ€.
μμΆμ (κ°μ₯ μ΅κ·Ό νΈμΆ λ§μ§λ§):
νμΌ "/usr/local/bin/pip2.7", 9ν, in
load_entry_point('pip==1.5.4', 'console_scripts', 'pip2.7')()
νμΌ "/usr/local/lib/python2.7/site-packages/pip-1.5.4-py2.7.egg/pip/__init__.py", 185ν, λ©μΈ
return command.main(cmd_args)
νμΌ "/usr/local/lib/python2.7/site-packages/pip-1.5.4-py2.7.egg/pip/basecommand.py", μ€ 161, κΈ°λ³Έ
ν
μ€νΈ = 'n'.join(μλ£_λ‘κ·Έ)
UnicodeDecodeError: 'ascii' μ½λ±μ μμΉ 66μ λ°μ΄νΈ 0xe2λ₯Ό λμ½λ©ν μ μμ΅λλ€: μμκ° λ²μμ μμ(128)
[ root@hostname bdinstalldir]#
κ°μ¬ ν΄μ
ν¬λ¦¬μλ
gccλ₯Ό μ κ·Έλ μ΄λν΄μΌ ν©λκΉ? gcc 4μ ν¨κ» μ€νν μ μλ μ΄μ λ²μ μ΄ μμ΅λκΉ? gcc OS κ΄λ ¨ μ»΄νμΌλ¬κ° μλλλ€.
κ°μ¬ ν΄μ
ν¬λ¦¬μλ
@kishore432 github μ€μΉλ₯Ό μλνκ³ Makefile
μμ μ»΄νμΌλ¬ μꡬ μ¬νμ μλμΌλ‘ νΈμ§ν μ μμ΅λλ€.
make
μ΄ λλ½λ CentOS 컨ν
μ΄λμ xgboost 0.6a2λ₯Ό pip μ€μΉνμ΅λλ€. μ€μΉκ° μ±κ³΅νλ€κ³ μ£Όμ₯νμ§λ§ λ¬Όλ‘ libλ₯Ό λ‘λν μ μμ΅λλ€. μ€μΉ λ¬Έμ λ‘ μΈν΄ λ°νμμ΄ μλ μ€μΉ μ μ€λ₯κ° λ°μνλ€λ©΄ λμμ΄ λ κ²μ΄λΌκ³ μκ°ν©λλ€.
μμΈν pip μΆλ ₯μμ ββλ°μ·:
Running setup.py (path:/tmp/pip-build-mv_qff2b/xgboost/setup.py) egg_info for package xgboost
Running command python setup.py egg_info
./xgboost/build-python.sh: line 17: make: command not found
./xgboost/build-python.sh: line 18: make: command not found
-----------------------------
Building multi-thread xgboost failed
Start to build single-thread xgboost
./xgboost/build-python.sh: line 24: make: command not found
./xgboost/build-python.sh: line 25: make: command not found
Successfully build single-thread xgboost
...
Building wheels for collected packages: xgboost
Running setup.py bdist_wheel for xgboost: started
Destination directory: /tmp/tmpgcuwvdt8pip-wheel-
Running command /usr/local/src/conda3_runtime/4.1.1/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-mv_qff2b/xgboost/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpgcuwvdt8pip-wheel- --python-tag cp35
./xgboost/build-python.sh: line 17: make: command not found
./xgboost/build-python.sh: line 18: make: command not found
-----------------------------
Building multi-thread xgboost failed
Start to build single-thread xgboost
./xgboost/build-python.sh: line 24: make: command not found
./xgboost/build-python.sh: line 25: make: command not found
Successfully build single-thread xgboost
Python 3 νκ²½μμ pip μ€μΉ μ μ΄λ¬ν μ€λ₯ λ©μμ§λ Python 2 ꡬ문μ μ¬μ©νλ print λ¬ΈμΌλ‘ μΈν΄ λ°μν©λλ€. κ·Έλλ ν΄λ₯Ό λΌμΉμ§λ μλ κ² κ°μ΅λλ€. μ΄ κ²½μ° μ€μΉ λ¬Έμ λ‘ μΈν΄ μ€μΉ μ μ€λ₯κ° λ°μνμ§ μμ λ€νμ λλ€.
Installing collected packages: xgboost
*** Error compiling '/tmp/pip-build-eoltxht1/xgboost/xgboost/rabit/guide/basic.py'...
File "/tmp/pip-build-eoltxht1/xgboost/xgboost/rabit/guide/basic.py", line 20
print '@node[%d] before-allreduce: a=%s' % (rank, str(a))
^
SyntaxError: invalid syntax
*** Error compiling '/tmp/pip-build-eoltxht1/xgboost/xgboost/rabit/guide/broadcast.py'...
File "/tmp/pip-build-eoltxht1/xgboost/xgboost/rabit/guide/broadcast.py", line 18
print '@node[%d] before-broadcast: s=\"%s\"' % (rank, str(s))
^
SyntaxError: invalid syntax
*** Error compiling '/tmp/pip-build-eoltxht1/xgboost/xgboost/rabit/test/local_recover.py'...
File "/tmp/pip-build-eoltxht1/xgboost/xgboost/rabit/test/local_recover.py", line 16
print '[%d] restart from version %d' % (rank, version)
^
SyntaxError: invalid syntax
Successfully installed xgboost-0.6a2
μ¬κΈ°μμ λ¬Έμ κ° λλ νμΌμ μ°Ύμμ΅λλ€. https://github.com/dmlc/rabit/tree/master/guide
μ¬κΈ°: https://github.com/dmlc/rabit/blob/master/test/local_recover.py
brew install gcc-5
λ MacOS Sierra 10.12.6μ λͺ¨λ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
MacOS El Captainμ΄ μκ³ gcc 49 λ° gcc 5λ₯Ό μ€μΉνμ§λ§ pip install xgboostλ₯Ό μ¬μ©νμ¬ xgboostλ₯Ό μ€μΉν μ μμ΅λλ€. νλ¨μ λ€μκ³Ό κ°μ λΉ¨κ°μ μ€λ₯ λ©μμ§μ ν¨κ» λ§μ λ©μμ§κ° μμ λ©λλ€.
"python setup.py egg_info" λͺ λ Ήμ΄ /private/var/folders/9x/9vqgp6tn69d5mxkspzw840qr0000gn/T/pip-build-GuPlss/xgboost/μ μ€λ₯ μ½λ 1κ³Ό ν¨κ» μ€ν¨νμ΅λλ€.
κ°μ λ¬Έμ λ‘ λΆλ§μ ν λ‘νλ κ²½μ°λ₯Ό λ§μ΄ 보μμ§λ§ λ§μ‘±μ€λ¬μ΄ λ΅λ³μ μ°Ύμ§ λͺ»νμ΅λλ€. μ΄μ©λ©΄ λ΄κ° λμ³€μ μλ μμ΅λλ€.
κ°μ¬ ν΄μ
μμ£Ό 묻λ μ§λ¬Έ
pip install xgboostκ° μλνλλ‘ ν μ μμμ§λ§ μ¬κΈ°μμ μ΄ μ§μΉ¨μ λ°λμ΅λλ€. https://www.ibm.com/developerworks/community/blogs/jfp/entry/Installing_XGBoost_on_Mac_OSX?lang=en
git-cloneμ μ¬μ©νκ³ μ΄μ xgboostκ° μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
@phunterlau κ°μ¬ν©λλ€! OS X(El Capitan 10.11.5, Anaconda Python 3.5)μμ λΉλνλλ° μλνμ΅λλ€. λν gcc5
brew install gcc5 --without-multilib
(μ£Όμμ¬νκ³Ό κ²½κ³ κ° κ±°μ μμμ§λ§ pythonμμ xgboostλ₯Ό κ°μ Έμ¬ μ μμ)