Настройте среду разработки#
Сделайте форк репозитория scikit-learn#
Сначала вам нужно создать учетную запись на GitHub (если у вас его еще нет) и форкните репозиторий проекта нажав кнопку 'Fork' в верхней части страницы. Это создает копию кода под вашей учетной записью на GitHub. Для получения дополнительной информации о том, как форкнуть репозиторий, см. это руководство.
Следующие шаги объясняют, как настроить локальный клон вашего форкнутого git репозитория и как локально установить scikit-learn в зависимости от вашей операционной системы.
Настройте локальный клон вашей форк-версии#
Клонируйте свой форк репозитория scikit-learn с вашей учетной записи GitHub на локальный диск:
git clone https://github.com/YourLogin/scikit-learn.git # add --depth 1 if your connection is slow
и перейти в эту директорию:
cd scikit-learn
Затем добавьте upstream удалённом репозитории. Это сохраняет ссылку на основной
репозиторий scikit-learn, который можно использовать для синхронизации
вашего репозитория с последними изменениями (это понадобится позже в Рабочий процесс разработки):
git remote add upstream https://github.com/scikit-learn/scikit-learn.git
Проверьте, что upstream и origin удалённые псевдонимы настроены правильно
при запуске:
git remote -v
Это должно отображать:
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)
Настройте выделенное окружение и установите зависимости#
Использование изолированной среды, такой как venv или conda позволяет установить конкретную версию scikit-learn с pip или conda и её зависимости, независимо от любых ранее установленных пакетов Python, что позволит избежать потенциальных конфликтов с другими пакетами.
В дополнение к необходимым зависимостям Python вам нужен работающий компилятор C/C++ с OpenMP поддержка для сборки scikit-learn cython расширения. Приведенные ниже инструкции для конкретных платформ описывают, как настроить подходящий компилятор и установить необходимые пакеты.
Сначала вам нужно установить компилятор с OpenMP поддержка.
Скачать Инструменты сборки для установщика Visual Studio
и запустите загруженный vs_buildtools.exe файл. Во время установки вам нужно убедиться, что вы выбрали «Разработка для настольных систем с C++», аналогично этому скриншоту:
Далее, скачайте и установите установщик conda-forge (Miniforge) для вашей системы. Conda-forge предоставляет дистрибутив Python на основе conda и самые популярные научные библиотеки. Откройте загруженный “Miniforge Prompt” и создайте новое окружение conda с необходимыми пакетами Python:
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
Активируйте только что созданное окружение conda:
conda activate sklearn-dev
Сначала вам нужно установить компилятор с OpenMP поддержка.
Скачать Инструменты сборки для установщика Visual Studio
и запустите загруженный vs_buildtools.exe файл. Во время установки вам нужно убедиться, что вы выбрали «Разработка для настольных систем с C++», аналогично этому скриншоту:
Далее установите 64-битную версию Python (3.11 или новее), например, с официальный сайт.
Теперь создайте виртуальное окружение (venv) и установите необходимые пакеты Python:
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
Компилятор C по умолчанию в macOS не поддерживает OpenMP напрямую. Чтобы разрешить установку compilers мета-пакет из канала conda-forge,
который предоставляет компиляторы C/C++ с поддержкой OpenMP на основе инструментария LLVM,
вам сначала нужно установить инструменты командной строки macOS:
xcode-select --install
Затем загрузите и установите установщик conda-forge (Miniforge) для вашей системы. Conda-forge предоставляет conda-дистрибутив Python и наиболее популярных научных библиотек. Создайте новое conda-окружение с требуемыми пакетами Python:
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
и активировать только что созданное окружение conda:
conda activate sklearn-dev
Компилятор C по умолчанию в macOS не поддерживает OpenMP напрямую, поэтому сначала необходимо включить поддержку OpenMP.
Установите инструменты командной строки macOS:
xcode-select --install
Далее установите библиотеку LLVM OpenMP с помощью Homebrew:
brew install libomp
Установите последнюю версию Python (3.11 или новее) с помощью Homebrew
(brew install python) или путём ручной установки пакета из
официальный сайт.
Теперь создайте виртуальное окружение (venv) и установите необходимые пакеты Python:
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
Скачать и установить установщик conda-forge (Miniforge) для вашей системы.
Conda-forge предоставляет дистрибутив Python на основе conda и наиболее
популярные научные библиотеки.
Создайте новое окружение conda с необходимыми пакетами Python
(включая compilers для работающего компилятора C/C++ с поддержкой OpenMP):
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
и активировать новое созданное окружение:
conda activate sklearn-dev
Чтобы проверить установленную версию Python, выполните:
python3 --version
Если у вас нет Python 3.11 или более поздней версии, пожалуйста, установите python3
из менеджера пакетов вашего дистрибутива.
Далее необходимо установить зависимости сборки, в частности компилятор C/C++ с поддержкой OpenMP для вашей системы. Здесь приведены команды для наиболее широко используемых дистрибутивов:
В дистрибутивах на основе Debian (например, Ubuntu) компилятор включен в
build-essentialпакет, и вам также нужны заголовочные файлы Python:sudo apt-get install build-essential python3-devВ дистрибутивах на основе Red Hat (например, CentOS) установите
gcc`для C и C++, а также файлы заголовков Python:sudo yum -y install gcc gcc-c++ python3-develВ Arche Linux заголовочные файлы Python уже включены в установку Python, и
gcc`включает необходимые компиляторы для C и C++:sudo pacman -S gcc
Теперь создайте виртуальное окружение (venv) и установите необходимые пакеты Python:
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
Установить редактируемую версию scikit-learn#
Убедитесь, что вы находитесь в scikit-learn каталог
и ваше виртуальное окружение venv или conda sklearn-dev среда активирована.
Теперь вы можете установить редактируемую версию scikit-learn с помощью pip:
pip install --editable . --verbose --no-build-isolation --config-settings editable-verbose=true
Примечание о --config-settings#
--config-settings editable-verbose=true необязателен, но рекомендуется
во избежание сюрпризов при импорте sklearn. meson-python реализует редактируемые установки путем пересборки sklearn при выполнении import sklearn.
При рекомендуемых настройках вы увидите сообщение при возникновении этой ситуации, вместо потенциального ожидания без обратной связи и вопроса о причинах задержки. Бонус: это означает, что вам нужно запустить только pip
install команда один раз, sklearn будет автоматически перестроен при импорте sklearn.
Обратите внимание, что --config-settings поддерживается только в pip версии 23.1 или более поздней. Для обновления pip до совместимой версии, выполните pip install -U pip.
Чтобы проверить установку, убедитесь, что установленная scikit-learn имеет
номер версии, оканчивающийся на .dev0:
python -c "import sklearn; sklearn.show_versions()"
Теперь у вас должна быть рабочая установка scikit-learn и правильно настроенный репозиторий git.
Может быть полезно запустить тесты сейчас (хотя это займет некоторое время), чтобы проверить вашу установку и быть в курсе предупреждений и ошибок, не связанных с вашим вкладом:
pytest
Для получения дополнительной информации о тестировании см. также Контрольный список pull request и Полезные псевдонимы и флаги pytest.
Настройка pre-commit#
Дополнительно установите хуки pre-commit, который автоматически проверяет ваш код на проблемы линтинга перед каждым коммитом в Рабочий процесс разработки:
pre-commit install