2025, Nov 19 03:02

Установка DEGA на Windows: решение ошибок pythran через WSL

Почему pip install DEGA на Windows ломается на сборке wheel из‑за pythran/OpenBLAS, и как это исправить: установка в WSL (Linux) и обычный pip без ошибок.

Установка пакета Python кажется простой, пока система сборки не сталкивается с ограничениями платформы. Типичный сценарий: вы пытаетесь поставить DEGA на Windows через pip и получаете сбой при сборке колеса (wheel) с упоминанием pythran и OpenBLAS. Разберёмся, что на самом деле происходит и как всё запустить без борьбы с инструментарием.

Воспроизводим сбой

Установка начинается нормально и прерывается на этапе сборки колеса. Типичный сеанс в Anaconda Prompt выглядит так:

pip install DEGA

В журнале сборки бросаются в глаза два фрагмента:

Building wheels for collected packages: DEGA
  Building wheel for DEGA (pyproject.toml) ... error
  error: subprocess-exited-with-error
  × Building wheel for DEGA (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [391 lines of output]
      WARNING: Failed to find 'pythran-openblas' package. Please install it or change the compiler.blas setting. Defaulting to 'none'

Ниже по логу можно увидеть и такое:

C:\Users\[user]\AppData\Local\Temp\pip-build-env-xxxx\overlay\Lib\site-packages\setuptools\command\build_py.py:212: _Warning: Package 'DEGA.cython' is absent from the `packages` configuration.

И в итоге процесс обрывается на ошибке компилятора:

error: command 'C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\bin\HostX86\x64\cl.exe' failed with exit code 2
ERROR: Failed building wheel for DEGA
Failed to build DEGA
ERROR: Failed to build installable wheels for some pyproject.toml based projects (DEGA).

Почему сборка на самом деле падает

DEGA объявляет зависимость от pythran, о чём сказано в его pyproject.toml. Загвоздка в том, что pythran официально поддерживает платформы MacOS и POSIX :: Linux; Windows, судя по метаданным самого проекта, не поддерживается. Когда бэкенд сборки пытается скомпилировать DEGA с pythran в среде Windows, процесс не может завершиться успешно — сборка колеса срывается. Упоминание pythran-openblas тоже не спасает: пакет pythran-openblas не поддерживается активно.

Рабочее решение: запустите Linux-среду на Windows

Поскольку pythran ориентирован на Linux и MacOS, надёжный способ на Windows — выполнить установку внутри Linux-среды. На Windows 10 и новее это обычно Windows Subsystem for Linux (WSL). У Microsoft есть пошаговая инструкция: Как установить Linux в Windows с WSL.

Когда вы окажетесь в оболочке Linux через WSL, установите пакет как обычно:

pip install DEGA

Такой подход подстраивает сборку под поддерживаемые pythran платформы и избавляет от специфических для Windows ошибок компилятора.

Почему это важно для упаковки и сборки Python-проектов

Современные Python‑пакеты нередко зависят от скомпилированных расширений и бэкендов сборки, заданных в pyproject.toml. Эти зависимости могут включать явные ограничения по платформам. Если сборка опирается на инструментарий, который исключает Windows, ни правки PATH, ни переустановка Visual Studio результата не изменят. Понимание рамок платформ заранее экономит часы экспериментов и сразу направляет к нужной среде выполнения.

Выводы

Если при сборке колеса DEGA на Windows появляются ссылки на pythran или pythran-openblas, корень проблемы — поддержка платформ. Запускайте установку в Linux-среде, например в WSL под Windows, и выполните там pip install. Прежде чем копаться в локальных компиляторах и SDK, загляните в pyproject.toml пакета и в список поддерживаемых платформ его зависимостей. Так вы быстрее всего согласуете сборочную систему с ожиданиями пакета и перейдёте к реальной разработке.