Installation ============ The following sections should help you install the library on your machine. Instead of installing the library system-wide, the instructions show how to install it within in a virtual environment. This avoids interfering with your operating system or other libraries, when you should upgrade some libraries. 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 Prerequisites for all platforms ------------------------------- 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. Personally, I recommend the **long-term support version 11 of OpenJDK**. If your operating system does not offer automatic installations of JDKs, you can download OpenJDK releases for various platforms from `here `__. When manually installing an OpenJDK, you will need to set the ``JAVA_HOME`` `environment variable `__, pointing to the installation directory. Optional features ----------------- Support for plots and graphs are optional features. If you do not want or need these, you can omit the suffix ``[plots,graphs]`` when installing python-weka-wrapper3. Ubuntu ------ A video demonstrating the installation on Ubuntu 22.04 is available: `https://youtu.be/UIm0rKilABc?si=DUECgNdc16K64CCu `__ First, you need to be able to compile C/C++ code and Python modules: .. code-block:: bash sudo apt install build-essential python3-dev Now, you can install the various packages that we require for installing *python-weka-wrapper3*: .. code-block:: bash sudo apt install python3-pip python3-numpy python3-venv The following packages are optional, but necessary if you also want some graphical output: .. code-block:: bash sudo apt install python3-pil python3-matplotlib python3-pygraphviz libgraphviz-dev Install OpenJDK as well, in order to get all the header files for compilation: .. code-block:: bash sudo apt install openjdk-11-jdk Create a virtual environment using the *venv* module that : .. code-block:: bash python3 -m venv pww3 Finally, you can use ``pip`` from the virtual environment to install the Python packages that are not available in the Ubuntu repositories: .. code-block:: bash . ./pww3/bin/activate pip install setuptools wheel pip install python-weka-wrapper3[plots,graphs] 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 install build-essential python3-dev Now, you can install the various packages that we require for installing *`python-weka-wrapper3*: .. code-block:: bash apt install python3-pip python3-numpy python3-venv The following packages are optional, but necessary if you also want some graphical output: .. code-block:: bash apt install python3-pil python3-matplotlib python3-pygraphviz libgraphviz-dev Older Debian versions used `python3-imaging` instead of `python3-pil`. Download a JDK and un-tar it in ``/opt`` (e.g., ``/opt/jdk-11.0.23+9/``). Exit superuser mode and become a regular user again. Export the Java home directory as follows (you might want to add this command to your ``.profile``): .. code-block:: bash export JAVA_HOME=/opt/jdk-11.0.23+9/ Create a virtual environment using the *venv* module that : .. code-block:: bash python3 -m venv pww3 Once the environment is set up, activate it and install *python-weka-wrapper3*: .. code-block:: bash . ./pww3/bin/activate pip install setuptools wheel pip install python-weka-wrapper3[plots,graphs] Please note, when using *python-weka-wrapper3* 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) Switch back to being a regular user. Create a virtual environment using the *venv* module that : .. code-block:: bash python3 -m venv pww3 Finally, you can use ``pip`` from the virtual environment to install the Python packages that are not available in the Ubuntu repositories: .. code-block:: bash . ./pww3/bin/activate pip install setuptools wheel pip install python-weka-wrapper3[plots,graphs] 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 against its header files. 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: * pip3 * numpy * PIL (optional) * matplotlib (optional) * pygraphviz (optional; requires graphviz headers) Create a virtual environment using the *venv* module that : .. code-block:: bash python3 -m venv pww3 Once the environment is set up, activate it and install *python-weka-wrapper3*: .. code-block:: bash . ./pww3/bin/activate pip install setuptools wheel pip install python-weka-wrapper3[plots,graphs] COLAB ----- In a Python 3 COLAB environment, you need to run the following steps for full functionality: .. code-block:: bash # install dependencies !apt install build-essential python3-dev !apt install python3-pil python3-pygraphviz libgraphviz-dev !apt install openjdk-11-jdk # install pww3 !pip install wheel !pip install python-weka-wrapper3[plots,graphs] **Notes:** * Once the JVM has been stopped, you will have to restart the COLAB runtime * After installing packages, you need to restart the COLAB runtime, otherwise the packages won't be available to the JVM Mac OSX ------- Please follow `these `__ general instructions for installing Python. Create a virtual environment using the *venv* module: .. code-block:: bash python3 -m venv pww3 Once the environment is set up, activate it and install *python-weka-wrapper3*: .. code-block:: bash . ./pww3/bin/activate pip install wheel brew install graphviz python3 -m pip install graphviz python3 -m pip install -U --no-cache-dir --config-settings="--global-option=build_ext" --config-settings="--global-option=-I$(brew --prefix graphviz)/include/" --config-settings="--global-option=-L$(brew --prefix graphviz)/lib/" pygraphviz pip install python-weka-wrapper3[plots,graphs] Windows using Anaconda ---------------------- A video demonstrating the installation on Windows 10 is available: `https://youtu.be/azr-JqF7jLE?si=JAz9M9NhJ5kVvWY0 `__ * download and install `Anaconda `__ if you haven't done so already * the following configures an environment with Python 3.12 .. code-block:: doscon conda create --name pww3 python=3.12 conda activate pww3 conda install -c conda-forge setuptools wheel pillow matplotlib lxml pygraphviz pip install python-weka-wrapper3[plots,graphs] 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 (or all of them are 64-bit). A video demonstrating the installation on Windows 10 (without graph support) is available: `https://youtu.be/t5g9cigltvs?si=-RkcZT1ygSJTjT2E `__ Perform the following steps: * if you want to be able to *display graphs in dot format* (very large installation): * download and install the `.Net framework 4.6 or later `__ (required for Visual C++ Build Tools) * download and install the `Visual C++ Build Tools `__, select the **Desktop development with C++** option in the installer * install `GraphViz `__ into ``C:\Program Files\Graphviz`` and add its binaries to the ``PATH`` environment variable * if you do not need *dot format support*: * install `MS VC++ redistributable `__ * install `Python `__, make sure you check *Add python.exe to path* during the installation * open a command-prompt and create a virtual environment * create a virtual environment using the *venv* module: .. code-block:: doscon python -m venv pww3 Once the environment is set up, activate it and install *python-weka-wrapper3*: .. code-block:: doscon pww3\Scripts\activate pip install setuptools wheel If you installed *Visual C++ Build Tools* and *Graphviz*: .. code-block:: doscon pip install -U --no-cache-dir --config-settings="--global-option=build_ext" --config-settings="--global-option=-IC:\\Program Files\\Graphviz\\include" --config-settings="--global-option=-LC:\\Program Files\\Graphviz\\lib" pygraphviz pip install python-weka-wrapper3[plots,graphs] If you only installed *MS VC++ redistributable*: .. code-block:: doscon pip install python-weka-wrapper3[plots] From source ----------- You can install python-weka-wrapper3 directly from its Github repository with `pip` as follows (e.g., to get the latest fixes/features): First, create a virtual environment: .. code-block:: bash python3 -m venv pww3 Once the environment is set up, activate it and install *python-weka-wrapper3*: .. code-block:: bash . ./pww3/bin/activate pip install "python-weka-wrapper3[plots,graphs] @ git+https://github.com/fracpete/python-weka-wrapper3.git"