libpath.py 1.22 KB
Newer Older
wxchan's avatar
wxchan committed
1
2
3
4
5
6
7
8
9
10
11
12
13
# coding: utf-8
"""Find the path to lightgbm dynamic library files."""
import os
import sys


def find_lib_path():
    """Find the path to LightGBM library files.
    Returns
    -------
    lib_path: list(string)
       List of all found library path to LightGBM
    """
14
15
16
17
    if os.environ.get('LIGHTGBM_BUILD_DOC', False):
        # we don't need lib_lightgbm while building docs
        return []

wxchan's avatar
wxchan committed
18
    curr_path = os.path.dirname(os.path.abspath(os.path.expanduser(__file__)))
Guolin Ke's avatar
Guolin Ke committed
19
    dll_path = [curr_path, os.path.join(curr_path, '../../'), os.path.join(curr_path, '../../lib/')]
wxchan's avatar
wxchan committed
20
    if os.name == 'nt':
Guolin Ke's avatar
Guolin Ke committed
21
        dll_path.append(os.path.join(curr_path, './Release/'))
Guolin Ke's avatar
Guolin Ke committed
22
        dll_path.append(os.path.join(curr_path, '../../Release/'))
23
        dll_path.append(os.path.join(curr_path, '../../windows/x64/DLL/'))
wxchan's avatar
wxchan committed
24
25
26
27
28
        dll_path = [os.path.join(p, 'lib_lightgbm.dll') for p in dll_path]
    else:
        dll_path = [os.path.join(p, 'lib_lightgbm.so') for p in dll_path]
    lib_path = [p for p in dll_path if os.path.exists(p) and os.path.isfile(p)]
    if not lib_path:
29
        dll_path = [os.path.realpath(p) for p in dll_path]
wxchan's avatar
wxchan committed
30
        raise Exception('Cannot find lightgbm Library in following paths: ' + ','.join(dll_path))
wxchan's avatar
wxchan committed
31
    return lib_path