‘pip install pyenet’ возвращает ошибку

Вопрос или проблема

Кто-нибудь знает, как исправить эту ошибку в Python 3.7? Любая более поздняя версия Python ломает стороннюю библиотеку, которую я использую, так что не просите меня использовать другую версию.

По умолчанию установка для пользователя, так как обычные site-packages недоступны для записи
Сборка pyenet
  Используется кэшированный файл pyenet-1.3.17.tar.gz (13 кБ)
  Подготовка метаданных (setup.py) ... готово
Сборка Cython<1,>=0 (из pyenet)
  Используется кэшированный файл Cython-0.29.37-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl.metadata (3.1 кБ)
Используется кэшированный файл Cython-0.29.37-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (1.9 МБ)
Сборка пакетов для собранных: pyenet
  Сборка колеса для pyenet (setup.py) ... ошибка
  ошибка: subprocess-exited-with-error

  × python setup.py bdist_wheel не выполнен успешно.
  │ код выхода: 1
  ╰─> [24 строки вывода]
      /usr/lib/python3/dist-packages/setuptools/__init__.py:84: _DeprecatedInstaller: setuptools.installer и fetch_build_eggs устарели.
      !!

              ********************************************************************************
              Требования должны удовлетворяться установщиком PEP 517.
              Если вы используете pip, вы можете попробовать `pip install --use-pep517`.
              ********************************************************************************

      !!
        dist.fetch_build_eggs(dist.setup_requires)
      выполняется bdist_wheel
      выполняется сборка
      выполняется build_ext
      Компиляция enet.pyx, так как он изменился.
      [1/1] Cythonizing enet.pyx
      сборка расширения 'enet'
      создание build
      создание build/temp.linux-x86_64-cpython-37
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DHAS_POLL -DHAS_FCNTL -DHAS_MSGHDR_FLAGS -DHAS_SOCKLEN_T -DHAS_GETHOSTBYNAME_R -DHAS_GETHOSTBYADDR_R -Ienet/include/ -I/usr/include/python3.7m -c enet.c -o build/temp.linux-x86_64-cpython-37/enet.o
      enet.c:51:10: фатальная ошибка: Python.h: Нет такого файла или каталога
         51 | #include "Python.h"
            |          ^~~~~~~~~~
      компиляция завершена.
      ошибка: команда '/usr/bin/x86_64-linux-gnu-gcc' завершилась с кодом выхода 1
      [конец вывода]

  примечание: Эта ошибка происходит из подпроцесса и, вероятно, не является проблемой pip.
  ERROR: Не удалось собрать колесо для pyenet
  Выполнение setup.py clean для pyenet
Не удалось собрать pyenet
ERROR: Не удалось собрать колеса для pyenet, которые необходимы для установки проектов на основе pyproject.toml

Ответ или решение

Ошибка при попытке установить пакет pyenet через pip связана с отсутствием необходимого файла Python.h, который является частью заголовков (headers) Python, необходимых для компиляции расширений на C. Чтобы решить эту проблему, вам нужно установить пакет, который содержит эти заголовочные файлы.

Вот пошаговая инструкция для устранения данной ошибки:

  1. Установите заголовочные файлы Python:
    На системах, основанных на Debian или Ubuntu, вы можете установить нужный пакет с помощью следующей команды в терминале:

    sudo apt-get install python3-dev

    Если у вас установлена конкретная версия Python, например 3.7, вы можете установить заголовочные файлы именно для этой версии:

    sudo apt-get install python3.7-dev
  2. Убедитесь, что вы используете правильную версию pip:
    Убедитесь, что вы используете pip, соответствующий вашей версии Python:

    python3.7 -m pip install --upgrade pip
  3. Попробуйте установить пакет снова:
    После установки заголовочных файлов Python попробуйте снова установить pyenet. Используйте команду:

    python3.7 -m pip install pyenet
  4. Используйте флаг PEP 517:
    Если ошибка все еще возникает, попробуйте установить пакет с использованием PEP 517:

    python3.7 -m pip install --use-pep517 pyenet
  5. Проверьте зависимости:
    Убедитесь, что все зависимости, такие как Cython, установлены корректно:

    python3.7 -m pip install Cython
  6. Обновите setuptools и wheel:
    Иногда проблемы возникают из-за устаревших версий setuptools и wheel. Вы можете обновить их с помощью:

    python3.7 -m pip install --upgrade setuptools wheel

Следуя этим шагам, вы должны быть в состоянии установить pyenet без проблем. Если после выполнения всех инструкций проблема все еще сохраняется, пожалуйста, уточните, какие именно ошибки возникают, чтобы можно было предложить более детальные рекомендации.

Оцените материал
Добавить комментарий

Капча загружается...