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

4
|License| |Python Versions| |PyPI Version|
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://go.microsoft.com/fwlink/?LinkId=746572>`_ is needed if **Visual Studio** (2015 or 2017) is not installed.
Guolin Ke's avatar
Guolin Ke committed
20

21
22
23
For **macOS** users, **gcc** 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** with **OpenMP** support.

For **macOS** users, latest versions of LightGBM are built with **gcc-8** and cannot be launched on systems with **gcc-7** and earlier. You should update your **gcc** compiler if you don't want to build from sources or install LightGBM 2.1.1 which is the last version built with **gcc-7**.
24

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

27
.. code:: sh
Guolin Ke's avatar
Guolin Ke committed
28

29
    pip install lightgbm
Guolin Ke's avatar
Guolin Ke committed
30

31
Build from Sources
32
******************
Guolin Ke's avatar
Guolin Ke committed
33

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

36
    pip install --no-binary :all: lightgbm
Guolin Ke's avatar
Guolin Ke committed
37

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

40
For **macOS** users, you can perform installation either with **Apple Clang** or **gcc**. 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. 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
41

42
For **Windows** users, **Visual Studio** (or `MS Build <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
43

44
45
46
47
48
49
50
Build MPI Version
~~~~~~~~~~~~~~~~~

.. code:: sh

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

51
52
53
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.
54

55
**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>`__.
56

57
Build GPU Version
58
~~~~~~~~~~~~~~~~~
Guolin Ke's avatar
Guolin Ke committed
59

60
.. code:: sh
61

62
    pip install lightgbm --install-option=--gpu
63

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

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

68
**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>`__. You need to add ``OpenCL_INCLUDE_DIR`` to the environmental variable **'PATH'** and export ``BOOST_ROOT`` before installation. Alternatively, you may pass options to **CMake** via ``pip`` options, like
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89

.. 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

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

90
91
92
93
94
95
96
Build HDFS Version
~~~~~~~~~~~~~~~~~~

.. code:: sh

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

97
Note that the installation process of HDFS version is **untested**.
98

99
100
101
102
103
104
105
Build with MinGW-w64 on Windows
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: sh

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

106
107
108
`CMake`_ and `MinGW-w64 <https://mingw-w64.org/>`_ should be installed first.

It is recommended to use **Visual Studio** for its better multithreading efficiency in **Windows** for many-core systems (see `FAQ <https://github.com/Microsoft/LightGBM/blob/master/docs/FAQ.rst#lightgbm>`__ Question 4 and Question 8).
Guolin Ke's avatar
Guolin Ke committed
109

Guolin Ke's avatar
Guolin Ke committed
110
111
Install from GitHub
'''''''''''''''''''
Guolin Ke's avatar
Guolin Ke committed
112

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

115
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
116

Guolin Ke's avatar
Guolin Ke committed
117
118
.. code:: sh

119
    git clone --recursive https://github.com/Microsoft/LightGBM.git
Guolin Ke's avatar
Guolin Ke committed
120
    cd LightGBM/python-package
121
    # 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
122
123
    python setup.py install

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

126
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
127

128
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.
129

130
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.
131

132
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
133

134
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
135
136

Troubleshooting
Guolin Ke's avatar
Guolin Ke committed
137
---------------
wxchan's avatar
wxchan committed
138

139
140
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.

141
Refer to `FAQ <https://github.com/Microsoft/LightGBM/tree/master/docs/FAQ.rst>`_.
wxchan's avatar
wxchan committed
142

143
144
145
146
147
Examples
--------

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

wxchan's avatar
wxchan committed
148
Developments
Guolin Ke's avatar
Guolin Ke committed
149
------------
wxchan's avatar
wxchan committed
150

151
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
152

153
- E1 Indentation (check PEP 8 link above)
wxchan's avatar
wxchan committed
154
155
156
157
158
159
160
- 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

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

163
164
165
.. |License| image:: https://img.shields.io/badge/license-MIT-blue.svg
   :target: https://github.com/Microsoft/LightGBM/blob/master/LICENSE
.. |Python Versions| image:: https://img.shields.io/pypi/pyversions/lightgbm.svg
166
   :target: https://pypi.org/project/lightgbm
167
.. |PyPI Version| image:: https://img.shields.io/pypi/v/lightgbm.svg
168
   :target: https://pypi.org/project/lightgbm
169
170

.. _CMake: https://cmake.org/