Installation ============ The following sections should help you install the library on your machine. Some of the instructions are based on the *CellProfiler* `instructions `__, the guys behind the *javabridge* library. However, if you should encounter problems or if you would like to submit improvements on the instructions below, please use the following mailing list: https://groups.google.com/forum/#!forum/python-weka-wrapper Videos ------ You can find videos on `YouTube `__ that show the installation process: * `Ubuntu 14.04 (64-bit) `__ * `Windows 7 (32-bit) `__ * `Windows 8.1 (64-bit) `__ * `Mac OSX 10.9.5 (Mavericks) `__ Prerequisites for all plaforms ------------------------------ You need a Java Development Kit (JDK) 1.8/8 (e.g., `OpenJDK `__) installed and the ``JAVA_HOME`` `environment variable `__ pointing to the installation directory in order to use *python-weka-wrapper3* library. **Note:** In the past, it was not recommended to use OpenJDK, as Weka was developed with and tested against Oracle's version. However, Oracle's JDK 8 is no longer available for public download and OpenJDK matured enough that it is now the recommended Java version to use. Ubuntu ------ First, you need to be able to compile C/C++ code and Python modules: .. code-block:: bash $ sudo apt-get install build-essential python-dev Now, you can install the various packages that we require for installing *python-weka-wrapper*: .. code-block:: bash $ sudo apt-get install python-pip python-numpy The following packages are optional, but necessary if you also want some graphical output: .. code-block:: bash $ sudo apt-get install python-pil python-matplotlib python-pygraphviz Install OpenJDK as well, in order to get all the header files that *javabridge* compiles against (but don't use it for starting up JVMs): .. code-block:: bash $ sudo apt-get install default-jdk Finally, you can use ``pip`` to install the Python packages that are not available in the repositories: .. code-block:: bash $ sudo pip install javabridge $ sudo pip install python-weka-wrapper Debian ------ First, become the superuser: .. code-block:: bash $ su You need to be able to compile C/C++ code and Python modules: .. code-block:: bash $ apt-get install build-essential python-dev Now, you can install the various packages that we require for installing *`python-weka-wrapper*: .. code-block:: bash $ apt-get install python-pip python-numpy The following packages are optional, but necessary if you also want some graphical output: .. code-block:: bash $ apt-get install python-imaging python-matplotlib python-pygraphviz Download an Oracle JDK and un-tar it in ``/opt`` (e.g., ``/opt/jdk1.8.0_162/``). Export the Java home directory as follows (required for the *javabridge* installation): .. code-block:: bash $ export JAVA_HOME=/opt/jdk1.8.0_162/ Finally, you can use ``pip`` to install the Python packages that are not available in the repositories: .. code-block:: bash $ pip install javabridge $ pip install python-weka-wrapper Please note, when using *python-weka-wrapper* as a *normal* user, don't forget to export the ``JAVA_HOME`` environment variable as described above (e.g., add it to your ``.profile``). Fedora/CentOS/Redhat -------------------- Here are some rough instructions (as superuser): * install openjdk (+ -devel) package * install python (+ -devel) package * download pip from https://bootstrap.pypa.io/get-pip.py * install pip using ``python get-pip.py`` * install dev tools using ``yum groupinstall "Development tools"`` * install numpy package * install python-imaging package (shouldn't be necessary) * install javabridge using ``pip javabridge`` * install python-weka-wrapper using ``pip python-weka-wrapper`` Other Linux distributions ------------------------- See `these `__ general instructions for installing Python on Linux. You need to be able to compile C/C++ code and Python modules (i.e., Python header files are required). By installing OpenJDK, you should be able to compile *javabridge* against its header files (for JNI access). Then you need to install the following Python packages, preferably through your package manager (e.g., ``yum``). Please note that on a *headless* machine, you can omit the packages marked as *optional*, as they are only required for graphical output and plots: * pip * numpy * PIL (optional) * matplotlib (optional) * pygraphviz (optional) Once these libraries are installed, you can use ``pip`` to install the remaining Python packages: .. code-block:: bash $ sudo pip install javabridge $ sudo pip install python-weka-wrapper Mac OSX ------- Please follow `these `__ general instructions for installing Python. In order to compile C/C++ code, you need to install *Xcode* through Apple's App Store. Once installed you can install the *XCode command-line tools* by issuing the command ``xcode-select --install`` in a terminal. Also, install *graphviz* using homebrew (``brew install pkg-config`` and ``brew install graphviz``) for visualizing trees and graphs. You need to install the following Python packages: * numpy * pillow * matplotlib * pygraphviz Once these libraries are installed, you can use ``pip`` to install the remaining Python packages: .. code-block:: bash $ pip install javabridge $ pip install python-weka-wrapper Windows using Anaconda ---------------------- **Please note:** You need to make sure that the *bitness* of your environment is consistent. I.e., if you install a 32-bit version of Anaconda, you need to install a 32-bit JDK (or all of them are 64-bit). * download `javabridge `__ for Python 2.7 (*cp27*) and your bitness (32 or 64 bit) * the following sets up an environment with Python 2.7 .. code-block:: bash > conda create --name pww python=2.7 > activate pww > pip install numpy > pip install C:\where\you\downloaded\it\javabridge-X.Y.Z.whl > pip install python-weka-wrapper If you want plotting support, then install also *graphviz* and *matplotlib*: * download `graphviz `__ and add the path to its installed binaries to your ``PATH`` environment variable. * install matplotlib using ``pip install matplotlib`` Windows ------- **Please note:** You need to make sure that the *bitness* of your environment is consistent. I.e., if you install a 32-bit version of Python, you need to install a 32-bit JDK and 32-bit numpy (or all of them are 64-bit). Perform the following steps: * install `Python `__, make sure you check *Add python.exe to path* during the installation * add the Python scripts directory to your ``PATH`` environment variable, e.g., ``C:\\Python27\\Scripts`` * install ``pip`` with these steps: * download from `here `__ * install using ``python get-pip.py`` * install numpy * download `numpy 1.9.x MKL `__ (or later) for Python 2.7 (*cp27*) and your *bitness* (32 or 64 bit) * install the *.whl* file using pip: ``pip install numpy-X.Y.Z.whl`` * install javabridge * download `javabridge `__ (or later) for Python 2.7 (*cp27*) and your *bitness* (32 or 64 bit) * install the *.whl* file using pip: ``pip install javabridge-X.Y.Z.whl`` If you want to use the plotting functionality, you need to install *matplotlib* as well: * download `matplotlib `__ for Python 2.7 (*cp27*) and your bitness (32 or 64 bit) * install the *.whl* file using pip: ``pip install matplotlib-X.Y.Z.whl`` .. code-block:: bash > pip install python-weka-wrapper For being able to compile libraries on Windows, you need the `Microsoft Build Tools 2015 `_ installed. From source ----------- You have two options for installing the library from source, either through a release archive or using the *bleeding edge* source code that is available through the Github repository. Archive +++++++ Go to the `releases `__ page on Github and download the *Source code* archive (zip or tar.gz) of the release that you want to install. After the download finishes, decompress the archive. Open a terminal/command prompt and execute the following command from within the directory with the `setup.py` file: .. code-block:: bash $ python setup.py install Check out the section on *virtualenv* as well, if you would rather install it in a *disposable* location. Gtihub ++++++ Clone the Github repository as follows: .. code-block:: bash git clone https://github.com/fracpete/python-weka-wrapper.git Change into the newly created directory and install the library using the following command: .. code-block:: bash $ python setup.py install Check out the section on *virtualenv* as well, if you would rather install it in a *disposable* location.