README.rst 10.3 KB
Newer Older
1
LightGBM Python-package
Guolin Ke's avatar
Guolin Ke committed
2
3
=======================

4
|License| |Python Versions| |PyPI Version| |Downloads|
Guolin Ke's avatar
Guolin Ke committed
5

Guolin Ke's avatar
Guolin Ke committed
6
7
8
Installation
------------

Guolin Ke's avatar
Guolin Ke committed
9
10
11
Preparation
'''''''''''

12
32-bit Python is not supported. Please install 64-bit version.
Guolin Ke's avatar
Guolin Ke committed
13

14
`setuptools <https://pypi.org/project/setuptools>`_ is needed.
Guolin Ke's avatar
Guolin Ke committed
15

16
Install from `PyPI <https://pypi.org/project/lightgbm>`_ Using ``pip``
17
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
18

19
For **Windows** users, `VC runtime <https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads>`_ is needed if **Visual Studio** (2015 or newer) is not installed.
Guolin Ke's avatar
Guolin Ke committed
20

21
For **Linux** users, **glibc** >= 2.14 is required.
22

23
For **macOS** users:
24

25
- Starting from version 2.2.1, the library file in distribution wheels is built by the **Apple Clang** (Xcode_8.3.3) compiler. This means that you don't need to install the **gcc** compiler anymore. Instead of that you need to install the **OpenMP** library, which is required for running LightGBM on the system with the **Apple Clang** compiler. You can install the **OpenMP** library by the following command: ``brew install libomp``.
26

27
- For version smaller than 2.2.1 and not smaller than 2.1.2, **gcc-8** with **OpenMP** support must be installed first. Refer to `Installation Guide <https://github.com/microsoft/LightGBM/blob/master/docs/Installation-Guide.rst#gcc>`__ for installation of **gcc-8** with **OpenMP** support.
28
29

- For version smaller than 2.1.2, **gcc-7** with **OpenMP** is required.
30

31
Install `wheel <https://pythonwheels.com>`_ via ``pip install wheel`` first. After that download the wheel file and install from it:
Guolin Ke's avatar
Guolin Ke committed
32

33
.. code:: sh
Guolin Ke's avatar
Guolin Ke committed
34

35
    pip install lightgbm
Guolin Ke's avatar
Guolin Ke committed
36

37
Build from Sources
38
******************
Guolin Ke's avatar
Guolin Ke committed
39

40
.. code:: sh
Guolin Ke's avatar
Guolin Ke committed
41

42
    pip install --no-binary :all: lightgbm
Guolin Ke's avatar
Guolin Ke committed
43

44
For **Linux** and **macOS** users, installation from sources requires installed `CMake`_.
Guolin Ke's avatar
Guolin Ke committed
45

46
47
For **macOS** users, you can perform installation either with **Apple Clang** or **gcc**.

48
- In case you prefer **Apple Clang**, you should install **OpenMP** (details for installation can be found in `Installation Guide <https://github.com/microsoft/LightGBM/blob/master/docs/Installation-Guide.rst#apple-clang>`__) first and **CMake** version 3.12 or higher is required.
49
50
51
52
53
54
55

  In some cases **OpenMP** cannot be found which causes installation failures. So, if you encounter errors during the installation process, try to pass paths to **CMake** via ``pip`` options, like

  .. code:: sh

      pip install lightgbm --install-option="--openmp-include-dir=/usr/local/opt/libomp/include/" --install-option="--openmp-library=/usr/local/opt/libomp/lib/libomp.dylib"

56
- In case you prefer **gcc**, you need to install it (details for installation can be found in `Installation Guide <https://github.com/microsoft/LightGBM/blob/master/docs/Installation-Guide.rst#gcc>`__) and specify compilers by running ``export CXX=g++-7 CC=gcc-7`` (replace "7" with version of **gcc** installed on your machine) first.
Guolin Ke's avatar
Guolin Ke committed
57

58
For **Windows** users, **Visual Studio** (or `VS Build Tools <https://visualstudio.microsoft.com/downloads/>`_) is needed. If you get any errors during installation, you may need to install `CMake`_ (version 3.8 or higher).
Guolin Ke's avatar
Guolin Ke committed
59

60
61
62
63
64
65
66
Build Threadless Version
~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: sh

    pip install lightgbm --install-option=--nomp

Nikita Titov's avatar
Nikita Titov committed
67
All remarks, except the **OpenMP** requirement for **macOS** users, from `Build from Sources section <#build-from-sources>`__ are actual in this case.
68
69
70

It is **strongly not recommended** to use this version of LightGBM!

71
72
73
74
75
76
77
Build MPI Version
~~~~~~~~~~~~~~~~~

.. code:: sh

    pip install lightgbm --install-option=--mpi

78
79
80
All remarks from `Build from Sources section <#build-from-sources>`__ are actual in this case.

For **Windows** users, compilation with **MinGW-w64** is not supported and `CMake`_ (version 3.8 or higher) is strongly required.
81

82
**MPI** libraries are needed: details for installation can be found in `Installation Guide <https://github.com/microsoft/LightGBM/blob/master/docs/Installation-Guide.rst#build-mpi-version>`__.
83

84
Build GPU Version
85
~~~~~~~~~~~~~~~~~
Guolin Ke's avatar
Guolin Ke committed
86

87
.. code:: sh
88

89
    pip install lightgbm --install-option=--gpu
90

91
All remarks from `Build from Sources section <#build-from-sources>`__ are actual in this case.
92

93
For **Windows** users, `CMake`_ (version 3.8 or higher) is strongly required.
94

95
**Boost** and **OpenCL** are needed: details for installation can be found in `Installation Guide <https://github.com/microsoft/LightGBM/blob/master/docs/Installation-Guide.rst#build-gpu-version>`__. Almost always you also need to pass ``OpenCL_INCLUDE_DIR``, ``OpenCL_LIBRARY`` options for **Linux** and ``BOOST_ROOT``, ``BOOST_LIBRARYDIR`` options for **Windows** to **CMake** via ``pip`` options, like
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114

.. code:: sh

    pip install lightgbm --install-option=--gpu --install-option="--opencl-include-dir=/usr/local/cuda/include/" --install-option="--opencl-library=/usr/local/cuda/lib64/libOpenCL.so"

All available options:

- boost-root

- boost-dir

- boost-include-dir

- boost-librarydir

- opencl-include-dir

- opencl-library

115
For more details see `FindBoost <https://cmake.org/cmake/help/latest/module/FindBoost.html>`__ and `FindOpenCL <https://cmake.org/cmake/help/latest/module/FindOpenCL.html>`__.
116

117
118
119
120
121
122
123
Build HDFS Version
~~~~~~~~~~~~~~~~~~

.. code:: sh

    pip install lightgbm --install-option=--hdfs

124
Note that the installation process of HDFS version was tested only on **Linux**.
125

126
127
128
129
130
131
132
Build with MinGW-w64 on Windows
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: sh

    pip install lightgbm --install-option=--mingw

133
134
`CMake`_ and `MinGW-w64 <https://mingw-w64.org/>`_ should be installed first.

135
136
It is recommended to use **Visual Studio** for its better multithreading efficiency in **Windows** for many-core systems
(see `Question 4 <https://github.com/microsoft/LightGBM/blob/master/docs/FAQ.rst#4-i-am-using-windows-should-i-use-visual-studio-or-mingw-for-compiling-lightgbm>`__ and `Question 8 <https://github.com/microsoft/LightGBM/blob/master/docs/FAQ.rst#8-cpu-usage-is-low-like-10-in-windows-when-using-lightgbm-on-very-large-datasets-with-many-core-systems>`__).
Guolin Ke's avatar
Guolin Ke committed
137

Guolin Ke's avatar
Guolin Ke committed
138
139
Install from GitHub
'''''''''''''''''''
Guolin Ke's avatar
Guolin Ke committed
140

141
All remarks from `Build from Sources section <#build-from-sources>`__ are actual in this case.
Guolin Ke's avatar
Guolin Ke committed
142

143
144
For **macOS** users who compile with **Apple Clang**, to pass **OpenMP** paths to **CMake** use the following syntax: ``python setup.py install --openmp-include-dir=/usr/local/opt/libomp/include/ --openmp-library=/usr/local/opt/libomp/lib/libomp.dylib``.

145
For **Windows** users, if you get any errors during installation and there is the warning ``WARNING:LightGBM:Compilation with MSBuild from existing solution file failed.`` in the log, you should install `CMake`_ (version 3.8 or higher).
Guolin Ke's avatar
Guolin Ke committed
146

Guolin Ke's avatar
Guolin Ke committed
147
148
.. code:: sh

149
    git clone --recursive https://github.com/microsoft/LightGBM.git
Guolin Ke's avatar
Guolin Ke committed
150
    cd LightGBM/python-package
151
    # export CXX=g++-7 CC=gcc-7  # macOS users, if you decided to compile with gcc, don't forget to specify compilers (replace "7" with version of gcc installed on your machine)
Guolin Ke's avatar
Guolin Ke committed
152
153
    python setup.py install

154
Note: ``sudo`` (or administrator rights in **Windows**) may be needed to perform the command.
155

156
157
Run ``python setup.py install --nomp`` to disable **OpenMP** support. All remarks from `Build Threadless Version section <#build-threadless-version>`__ are actual in this case.

158
Run ``python setup.py install --mpi`` to enable **MPI** support. All remarks from `Build MPI Version section <#build-mpi-version>`__ are actual in this case.
Guolin Ke's avatar
Guolin Ke committed
159

160
Run ``python setup.py install --mingw``, if you want to use **MinGW-w64** on **Windows** instead of **Visual Studio**. All remarks from `Build with MinGW-w64 on Windows section <#build-with-mingw-w64-on-windows>`__ are actual in this case.
161

162
Run ``python setup.py install --gpu`` to enable GPU support. All remarks from `Build GPU Version section <#build-gpu-version>`__ are actual in this case. To pass additional options to **CMake** use the following syntax: ``python setup.py install --gpu --opencl-include-dir=/usr/local/cuda/include/``, see `Build GPU Version section <#build-gpu-version>`__ for the complete list of them.
163

164
Run ``python setup.py install --hdfs`` to enable HDFS support. All remarks from `Build HDFS Version section <#build-hdfs-version>`__ are actual in this case.
Guolin Ke's avatar
Guolin Ke committed
165

166
If you get any errors during installation or due to any other reasons, you may want to build dynamic library from sources by any method you prefer (see `Installation Guide <https://github.com/microsoft/LightGBM/blob/master/docs/Installation-Guide.rst>`__) and then just run ``python setup.py install --precompile``.
wxchan's avatar
wxchan committed
167
168

Troubleshooting
Guolin Ke's avatar
Guolin Ke committed
169
---------------
wxchan's avatar
wxchan committed
170

171
172
In case you are facing any errors during the installation process, you can examine ``$HOME/LightGBM_compilation.log`` file, in which all operations are logged, to get more details about occurred problem. Also, please attach this file to the issue on GitHub to help faster indicate the cause of the error.

173
Refer to `FAQ <https://github.com/microsoft/LightGBM/tree/master/docs/FAQ.rst>`_.
wxchan's avatar
wxchan committed
174

175
176
177
Examples
--------

178
Refer to the walk through examples in `Python guide folder <https://github.com/microsoft/LightGBM/tree/master/examples/python-guide>`_.
179

180
181
Development Guide
-----------------
wxchan's avatar
wxchan committed
182

183
The code style of Python-package follows `PEP 8 <https://www.python.org/dev/peps/pep-0008/>`_. If you would like to make a contribution and not familiar with PEP 8, please check the PEP 8 style guide first. Otherwise, the check won't pass. You should be careful about:
wxchan's avatar
wxchan committed
184

185
- E1 Indentation (check PEP 8 link above)
wxchan's avatar
wxchan committed
186
187
188
189
190
191
192
- E202 whitespace before and after brackets
- E225 missing whitespace around operator
- E226 missing whitespace around arithmetic operator
- E261 at least two spaces before inline comment
- E301 expected 1 blank line in front of and at the end of a method
- E302 expected 2 blank lines in front of and at the end of a function or a class

193
E501 (line too long) and W503 (line break occurred before a binary operator) can be ignored.
Guolin Ke's avatar
Guolin Ke committed
194

195
196
Documentation strings (docstrings) are written in the NumPy style.

197
.. |License| image:: https://img.shields.io/badge/license-MIT-blue.svg
198
   :target: https://github.com/microsoft/LightGBM/blob/master/LICENSE
199
.. |Python Versions| image:: https://img.shields.io/pypi/pyversions/lightgbm.svg
200
   :target: https://pypi.org/project/lightgbm
201
.. |PyPI Version| image:: https://img.shields.io/pypi/v/lightgbm.svg
202
   :target: https://pypi.org/project/lightgbm
203
204
.. |Downloads| image:: https://pepy.tech/badge/lightgbm
   :target: https://pepy.tech/project/lightgbm
205
.. _CMake: https://cmake.org/