simonprovost / Auto-Sklong

Auto-Scikit-Longitudinal (Auto-Sklong) is an automated machine learning (AutoML) library designed to analyse longitudinal data (Classification tasks focussed as of today) using various search methods. Namely, Bayesian Optimisation via SMAC3, Asynchronous Successive Halving, Evolutionary Algorithms, and Random Search via GAMA
https://simonprovost.github.io/Auto-Sklong/
Apache License 2.0
8 stars 0 forks source link

Installation problem on macOS M1 #4

Open anderdnavarro opened 1 week ago

anderdnavarro commented 1 week ago

Hi!

I'm trying to install the Auto-Sklong using pip install Auto-Sklong on my MacBook Pro M1, but there is one dependency that is only available for Intel chips (deep_forest-0.1.7-cp39-cp39-macosx_10_9_x86_64.whl), so the installation fails:

Collecting auto-sklong
  Using cached auto_sklong-0.0.2-py3-none-any.whl.metadata (11 kB)
Collecting numpy==1.23.3 (from auto-sklong)
  Using cached numpy-1.23.3-cp39-cp39-macosx_11_0_arm64.whl.metadata (2.3 kB)
Collecting scipy>=1.5.0 (from auto-sklong)
  Using cached scipy-1.13.1-cp39-cp39-macosx_12_0_arm64.whl.metadata (60 kB)
Collecting pandas<2.0.0,>=1.5.3 (from auto-sklong)
  Using cached pandas-1.5.3-cp39-cp39-macosx_11_0_arm64.whl.metadata (11 kB)
Collecting stopit>=1.1.2 (from auto-sklong)
  Using cached stopit-1.1.2.tar.gz (18 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting liac-arff>=2.2.2 (from auto-sklong)
  Using cached liac-arff-2.5.0.tar.gz (13 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting category-encoders>=1.2.8 (from auto-sklong)
  Using cached category_encoders-2.6.3-py2.py3-none-any.whl.metadata (8.0 kB)
Collecting black>=23.10.1 (from auto-sklong)
  Using cached black-24.8.0-cp39-cp39-macosx_11_0_arm64.whl.metadata (78 kB)
Collecting psutil (from auto-sklong)
  Using cached psutil-6.0.0-cp38-abi3-macosx_11_0_arm64.whl.metadata (21 kB)
Collecting configspace<1.0.0,>=0.7.1 (from auto-sklong)
  Using cached ConfigSpace-0.7.1-cp39-cp39-macosx_10_9_universal2.whl.metadata (7.2 kB)
Collecting smac==2.1.0 (from auto-sklong)
  Using cached smac-2.1.0.tar.gz (148 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting Scikit-longitudinal>=0.0.5 (from auto-sklong)
  Using cached scikit_longitudinal-0.0.6-py3-none-any.whl.metadata (11 kB)
Collecting pynisher>=1.0.0 (from smac==2.1.0->auto-sklong)
  Using cached pynisher-1.0.10.tar.gz (30 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting joblib (from smac==2.1.0->auto-sklong)
  Using cached joblib-1.4.2-py3-none-any.whl.metadata (5.4 kB)
Collecting scikit-learn>=1.1.2 (from smac==2.1.0->auto-sklong)
  Downloading scikit_learn-1.5.2-cp39-cp39-macosx_12_0_arm64.whl.metadata (13 kB)
Collecting pyrfr>=0.9.0 (from smac==2.1.0->auto-sklong)
  Using cached pyrfr-0.9.0.tar.gz (295 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting dask[distributed] (from smac==2.1.0->auto-sklong)
  Using cached dask-2024.8.0-py3-none-any.whl.metadata (3.8 kB)
Collecting dask-jobqueue (from smac==2.1.0->auto-sklong)
  Using cached dask_jobqueue-0.8.5-py2.py3-none-any.whl.metadata (1.6 kB)
Collecting emcee>=3.0.0 (from smac==2.1.0->auto-sklong)
  Using cached emcee-3.1.6-py2.py3-none-any.whl.metadata (3.0 kB)
Collecting regex (from smac==2.1.0->auto-sklong)
  Downloading regex-2024.9.11-cp39-cp39-macosx_11_0_arm64.whl.metadata (40 kB)
Collecting pyyaml (from smac==2.1.0->auto-sklong)
  Using cached PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl.metadata (2.1 kB)
Collecting click>=8.0.0 (from black>=23.10.1->auto-sklong)
  Using cached click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting mypy-extensions>=0.4.3 (from black>=23.10.1->auto-sklong)
  Using cached mypy_extensions-1.0.0-py3-none-any.whl.metadata (1.1 kB)
Collecting packaging>=22.0 (from black>=23.10.1->auto-sklong)
  Using cached packaging-24.1-py3-none-any.whl.metadata (3.2 kB)
Collecting pathspec>=0.9.0 (from black>=23.10.1->auto-sklong)
  Using cached pathspec-0.12.1-py3-none-any.whl.metadata (21 kB)
Collecting platformdirs>=2 (from black>=23.10.1->auto-sklong)
  Downloading platformdirs-4.3.3-py3-none-any.whl.metadata (11 kB)
Collecting tomli>=1.1.0 (from black>=23.10.1->auto-sklong)
  Using cached tomli-2.0.1-py3-none-any.whl.metadata (8.9 kB)
Collecting typing-extensions>=4.0.1 (from black>=23.10.1->auto-sklong)
  Using cached typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)
Collecting statsmodels>=0.9.0 (from category-encoders>=1.2.8->auto-sklong)
  Using cached statsmodels-0.14.2-cp39-cp39-macosx_11_0_arm64.whl.metadata (9.2 kB)
Collecting patsy>=0.5.1 (from category-encoders>=1.2.8->auto-sklong)
  Using cached patsy-0.5.6-py2.py3-none-any.whl.metadata (3.5 kB)
Collecting pyparsing (from configspace<1.0.0,>=0.7.1->auto-sklong)
  Using cached pyparsing-3.1.4-py3-none-any.whl.metadata (5.1 kB)
Collecting more-itertools (from configspace<1.0.0,>=0.7.1->auto-sklong)
  Downloading more_itertools-10.5.0-py3-none-any.whl.metadata (36 kB)
Collecting python-dateutil>=2.8.1 (from pandas<2.0.0,>=1.5.3->auto-sklong)
  Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
Collecting pytz>=2020.1 (from pandas<2.0.0,>=1.5.3->auto-sklong)
  Downloading pytz-2024.2-py2.py3-none-any.whl.metadata (22 kB)
Collecting matplotlib<4.0.0,>=3.7.0 (from Scikit-longitudinal>=0.0.5->auto-sklong)
  Using cached matplotlib-3.9.2-cp39-cp39-macosx_11_0_arm64.whl.metadata (11 kB)
Collecting jupyter<2.0.0,>=1.0.0 (from Scikit-longitudinal>=0.0.5->auto-sklong)
  Using cached jupyter-1.1.1-py2.py3-none-any.whl.metadata (2.0 kB)
Collecting overrides<8.0.0,>=7.3.1 (from Scikit-longitudinal>=0.0.5->auto-sklong)
  Using cached overrides-7.7.0-py3-none-any.whl.metadata (5.8 kB)
Collecting ray<3.0.0,>=2.3.1 (from Scikit-longitudinal>=0.0.5->auto-sklong)
  Using cached ray-2.35.0-cp39-cp39-macosx_11_0_arm64.whl.metadata (16 kB)
Collecting graphviz<1.0.0,>=0.20.1 (from Scikit-longitudinal>=0.0.5->auto-sklong)
  Using cached graphviz-0.20.3-py3-none-any.whl.metadata (12 kB)
Collecting threadpoolctl<4.0.0,>=3.1.0 (from Scikit-longitudinal>=0.0.5->auto-sklong)
  Using cached threadpoolctl-3.5.0-py3-none-any.whl.metadata (13 kB)
Collecting rich>=13.6.0 (from Scikit-longitudinal>=0.0.5->auto-sklong)
  Using cached rich-13.8.1-py3-none-any.whl.metadata (18 kB)
INFO: pip is looking at multiple versions of scikit-longitudinal to determine which version is compatible with other requirements. This could take a while.
Collecting Scikit-longitudinal>=0.0.5 (from auto-sklong)
  Using cached scikit_longitudinal-0.0.5-py3-none-any.whl.metadata (11 kB)
ERROR: Cannot install auto-sklong because these package versions have conflicting dependencies.

The conflict is caused by:
    scikit-longitudinal 0.0.6 depends on deep-forest>=0.1.7
    scikit-longitudinal 0.0.5 depends on deep-forest>=0.1.7

I built a very simple Docker image to be able to install the package, in case it's useful for you:

FROM python:3.9.19-bullseye

RUN apt-get update -y && \
    apt-get upgrade -y && \
    apt-get autoremove -y && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*
RUN pip3.9 install --upgrade pip && \
    pip3.9 install Auto-Sklong && \
    pip3.9 uninstall -y scikit-learn scikit-lexicographical-trees && \
    pip3.9 install scikit-lexicographical-trees

WORKDIR /home
ENTRYPOINT /bin/bash

Also, I'd like to add that it only worked with python3.9, due to some dependency incompatibilities with higher versions of python and with debian bullseye, as when I tried debian bookworm (with that same dockerfile) there were some problems during compilation (I didn't save them sorry).

I hope that can help.

Thank you very much for developing these packages! Ander

simonprovost commented 1 week ago

Hi, Mate! I will respond in a few days; I am attending a conference this week. No worries, your errors are not unusual; I will explain how to correct them. Apple Silicon is still capricious these days unfortunately!

Cheers,