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
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
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-essentialenthalten, und Sie benötigen auch die Python-Headerdateiensudo apt-get install build-essential python3-devAuf Red Hat-basierten Distributionen (z. B. CentOS) installieren Sie
gcc`für C und C++ sowie die Python-Headerdateiensudo yum -y install gcc gcc-c++ python3-develAuf 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