Richten Sie Ihre Entwicklungsumgebung ein#

Forken Sie das scikit-learn Repository#

Zuerst müssen Sie ein Konto auf GitHub erstellen (falls Sie noch keines haben) und das Projekt-Repository forken, indem Sie auf die Schaltfläche „Fork“ oben auf der Seite klicken. Dies erstellt eine Kopie des Codes unter Ihrem Konto auf dem GitHub-Benutzerkonto. Weitere Details zum Forken eines Repositories finden Sie in dieser Anleitung.

Die folgenden Schritte erklären, wie Sie einen lokalen Klon Ihres geforkten Git-Repositorys einrichten und wie Sie scikit-learn lokal entsprechend Ihrem Betriebssystem installieren.

Richten Sie einen lokalen Klon Ihres Forks ein#

Klonen Sie Ihren Fork des scikit-learn Repos von Ihrem GitHub-Konto auf Ihre lokale Festplatte

git clone https://github.com/YourLogin/scikit-learn.git  # add --depth 1 if your connection is slow

und wechseln Sie in dieses Verzeichnis

cd scikit-learn

Fügen Sie als Nächstes das upstream Remote hinzu. Dies speichert eine Referenz auf das Haupt-scikit-learn-Repository, das Sie verwenden können, um Ihr Repository mit den neuesten Änderungen synchron zu halten (Sie benötigen dies später im Entwicklungs-Workflow).

git remote add upstream https://github.com/scikit-learn/scikit-learn.git

Überprüfen Sie mit der Ausführung von, ob die Aliase upstream und origin korrekt konfiguriert sind.

git remote -v

Dies sollte Folgendes anzeigen:

origin    https://github.com/YourLogin/scikit-learn.git (fetch)
origin    https://github.com/YourLogin/scikit-learn.git (push)
upstream  https://github.com/scikit-learn/scikit-learn.git (fetch)
upstream  https://github.com/scikit-learn/scikit-learn.git (push)

Richten Sie eine dedizierte Umgebung ein und installieren Sie Abhängigkeiten#

Durch die Verwendung einer isolierten Umgebung wie venv oder conda können Sie eine bestimmte Version von scikit-learn mit pip oder conda und seinen Abhängigkeiten installieren, unabhängig von bereits installierten Python-Paketen. Dies vermeidet potenzielle Konflikte mit anderen Paketen.

Zusätzlich zu den erforderlichen Python-Abhängigkeiten benötigen Sie einen funktionierenden C/C++-Compiler mit OpenMP-Unterstützung, um die Cython-Erweiterungen von scikit-learn zu erstellen. Die plattformspezifischen Anweisungen unten beschreiben, wie Sie einen geeigneten Compiler einrichten und die erforderlichen Pakete installieren.

Zuerst müssen Sie einen Compiler mit OpenMP-Unterstützung installieren. Laden Sie das Installationsprogramm für Build Tools für Visual Studio herunter und führen Sie die heruntergeladene Datei vs_buildtools.exe aus. Während der Installation müssen Sie sicherstellen, dass Sie „Desktopentwicklung mit C++“ auswählen, ähnlich wie in diesem Screenshot

../_images/visual-studio-build-tools-selection.png

Laden Sie als Nächstes das conda-forge-Installationsprogramm (Miniforge) für Ihr System herunter und installieren Sie es. Conda-forge bietet eine conda-basierte Distribution von Python und den beliebtesten wissenschaftlichen Bibliotheken. Öffnen Sie die heruntergeladene „Miniforge Prompt“ und erstellen Sie eine neue conda-Umgebung mit den erforderlichen Python-Paketen

conda create -n sklearn-dev -c conda-forge ^
  python numpy scipy cython meson-python ninja ^
  pytest pytest-cov ruff==0.11.2 mypy numpydoc ^
  joblib threadpoolctl pre-commit

Aktivieren Sie die neu erstellte conda-Umgebung

conda activate sklearn-dev

Zuerst müssen Sie einen Compiler mit OpenMP-Unterstützung installieren. Laden Sie das Installationsprogramm für Build Tools für Visual Studio herunter und führen Sie die heruntergeladene Datei vs_buildtools.exe aus. Während der Installation müssen Sie sicherstellen, dass Sie „Desktopentwicklung mit C++“ auswählen, ähnlich wie in diesem Screenshot

../_images/visual-studio-build-tools-selection.png

Installieren Sie als Nächstes die 64-Bit-Version von Python (3.11 oder neuer), zum Beispiel von der offiziellen Website.

Erstellen Sie nun eine virtuelle Umgebung (venv) und installieren Sie die erforderlichen Python-Pakete

python -m venv sklearn-dev
sklearn-dev\Scripts\activate  # activate
pip install wheel numpy scipy cython meson-python ninja ^
  pytest pytest-cov ruff==0.11.2 mypy numpydoc ^
  joblib threadpoolctl pre-commit

Der Standard-C-Compiler unter macOS unterstützt OpenMP nicht direkt. Um die Installation des Meta-Pakets compilers aus dem conda-forge-Kanal zu ermöglichen, das OpenMP-fähige C/C++-Compiler basierend auf der LLVM-Toolchain bereitstellt, müssen Sie zuerst die macOS-Befehlszeilentools installieren

xcode-select --install

Laden Sie als Nächstes das conda-forge-Installationsprogramm (Miniforge) für Ihr System herunter und installieren Sie es. Conda-forge bietet eine conda-basierte Distribution von Python und den beliebtesten wissenschaftlichen Bibliotheken. Erstellen Sie eine neue conda-Umgebung mit den erforderlichen Python-Paketen

conda create -n sklearn-dev -c conda-forge python \
  numpy scipy cython meson-python ninja \
  pytest pytest-cov ruff==0.11.2 mypy numpydoc \
  joblib threadpoolctl compilers llvm-openmp pre-commit

und aktivieren Sie die neu erstellte conda-Umgebung

conda activate sklearn-dev

Der Standard-C-Compiler unter macOS unterstützt OpenMP nicht direkt, daher müssen Sie zuerst die OpenMP-Unterstützung aktivieren.

Installieren Sie die macOS-Befehlszeilentools

xcode-select --install

Installieren Sie als Nächstes die LLVM OpenMP-Bibliothek mit Homebrew

brew install libomp

Installieren Sie eine aktuelle Version von Python (3.11 oder neuer) mit Homebrew (brew install python) oder indem Sie das Paket manuell von der offiziellen Website installieren.

Erstellen Sie nun eine virtuelle Umgebung (venv) und installieren Sie die erforderlichen Python-Pakete

python -m venv sklearn-dev
source sklearn-dev/bin/activate  # activate
pip install wheel numpy scipy cython meson-python ninja \
  pytest pytest-cov ruff==0.11.2 mypy numpydoc \
  joblib threadpoolctl pre-commit

Laden Sie das conda-forge-Installationsprogramm (Miniforge) für Ihr System herunter und installieren Sie es. Conda-forge bietet eine conda-basierte Distribution von Python und den beliebtesten wissenschaftlichen Bibliotheken. Erstellen Sie eine neue conda-Umgebung mit den erforderlichen Python-Paketen (einschließlich compilers für einen funktionierenden C/C++-Compiler mit OpenMP-Unterstützung)

conda create -n sklearn-dev -c conda-forge python \
  numpy scipy cython meson-python ninja \
  pytest pytest-cov ruff==0.11.2 mypy numpydoc \
  joblib threadpoolctl compilers pre-commit

und aktivieren Sie die neu erstellte Umgebung

conda activate sklearn-dev

Um Ihre installierte Python-Version zu überprüfen, führen Sie Folgendes aus:

python3 --version

Wenn Sie kein Python 3.11 oder neuer haben, installieren Sie bitte python3 über den Paketmanager Ihrer Distribution.

Als Nächstes müssen Sie die Build-Abhängigkeiten installieren, insbesondere einen C/C++-Compiler mit OpenMP-Unterstützung für Ihr System. Hier finden Sie die Befehle für die am weitesten verbreiteten Distributionen

  • Auf Debian-basierten Distributionen (z. B. Ubuntu) ist der Compiler im Paket build-essential enthalten, und Sie benötigen auch die Python-Headerdateien

    sudo apt-get install build-essential python3-dev
    
  • Auf Red Hat-basierten Distributionen (z. B. CentOS) installieren Sie gcc` für C und C++ sowie die Python-Headerdateien

    sudo yum -y install gcc gcc-c++ python3-devel
    
  • Auf Arch Linux sind die Python-Headerdateien bereits in der Python-Installation enthalten, und gcc` enthält die erforderlichen Compiler für C und C++

    sudo pacman -S gcc
    

Erstellen Sie nun eine virtuelle Umgebung (venv) und installieren Sie die erforderlichen Python-Pakete

python -m venv sklearn-dev
source sklearn-dev/bin/activate  # activate
pip install wheel numpy scipy cython meson-python ninja \
  pytest pytest-cov ruff==0.11.2 mypy numpydoc \
  joblib threadpoolctl pre-commit

Installieren Sie eine editierbare Version von scikit-learn#

Stellen Sie sicher, dass Sie sich im Verzeichnis scikit-learn befinden und Ihre venv- oder conda-Umgebung sklearn-dev aktiviert ist. Sie können nun eine editierbare Version von scikit-learn mit pip installieren

pip install --editable . --verbose --no-build-isolation --config-settings editable-verbose=true
Hinweis zu --config-settings#

--config-settings editable-verbose=true ist optional, aber empfohlen, um Überraschungen zu vermeiden, wenn Sie sklearn importieren. meson-python implementiert editierbare Installationen, indem sklearn beim Ausführen von import sklearn neu kompiliert wird. Mit der empfohlenen Einstellung sehen Sie eine Meldung, wenn dies geschieht, anstatt möglicherweise ohne Rückmeldung zu warten und sich zu fragen, was so lange dauert. Bonus: Dies bedeutet, dass Sie den Befehl pip install nur einmal ausführen müssen, sklearn wird beim Importieren von sklearn automatisch neu kompiliert.

Beachten Sie, dass --config-settings nur in pip Version 23.1 oder neuer unterstützt wird. Um pip auf eine kompatible Version zu aktualisieren, führen Sie pip install -U pip aus.

Um Ihre Installation zu überprüfen, stellen Sie sicher, dass das installierte scikit-learn eine Versionsnummer hat, die mit .dev0 endet

python -c "import sklearn; sklearn.show_versions()"

Sie sollten nun eine funktionierende Installation von scikit-learn und Ihr richtig konfiguriertes Git-Repository haben.

Es kann nützlich sein, die Tests jetzt auszuführen (auch wenn dies einige Zeit dauern wird), um Ihre Installation zu verifizieren und sich über Warnungen und Fehler bewusst zu sein, die nicht mit Ihrem Beitrag zusammenhängen.

pytest

Weitere Informationen zu Tests finden Sie auch in der Checkliste für Pull Requests und Nützliche pytest-Aliase und Flags.

Richten Sie pre-commit ein#

Installieren Sie zusätzlich die pre-commit Hooks, die Ihren Code automatisch vor jedem Commit auf Linting-Probleme prüfen, im Entwicklungs-Workflow

pre-commit install