Если python-dev потребуется для установки pip

Я обнаружил, что у многих людей возникают проблемы с установкой пакетов python с помощью pip, поскольку python-dev не установлен. В основном, ошибка:

fatal error: Python.h: No such file or directory 

Итак, вопрос: должен ли python-dev быть необходимой зависимостью от pip? Или это только проблема для определенных пакетов, которые устанавливаются вместе с pip, и если да, есть ли определенные меры для обеспечения того, чтобы пользователи не сталкивались с ошибкой при установке ваших модулей?

  • Python (nltk) - UnicodeDecodeError: кодек 'ascii' не может декодировать байт
  • Python (nltk) - UnicodeDecodeError: кодек 'ascii' не может декодировать байт
  • One Solution collect form web for “Если python-dev потребуется для установки pip”

    Я не думаю, что это на самом деле принадлежит StackOverflow, но на случай, если я ошибаюсь …

    Во-первых, python-dev – это не Python, это Ubuntu или Fedora или какая-то другая дистрибутива. Если вы загружаете, создаете и устанавливаете Python или запускаете любой двоичный установщик с python.org, вы получаете Python.h установленный в соответствующем месте. Многие дистрибутивы Linux любят разбивать пакеты на подпакеты, перемещая вещи, которые вам нужны только для сборки в -dev или аналогичный пакет, и нет ничего плохого в том, чтобы делать это с Python, но это все еще что-то, что делает дистрибутив.

    Во-вторых, Python.h не требуется для создания всех пакетов, только те, которые содержат модули расширения C. Поскольку многие пакеты являются чистыми Python и не имеют таких модулей расширения, имеет смысл, что пакет pipro distro не требует его пакета python-dev . (Точно так же, как пакет pip в дистрибутиве, вероятно, не требовал бы компилятора C.)

    В-третьих, большинство дистрибутивов, которые дают вам python-pip или аналогичный пакет, также предоставляют вам пакеты для популярных пакетов. Если вы установите их таким образом, вам не понадобится python-dev (и компилятор C), потому что они представляют собой двоичные пакеты или вам понадобятся, но они будут втянуты в зависимость (rpm, deb, и т. д., все имеют возможность указывать отдельные зависимости «строить» и «запускать»).

    Но если вы заходите за спину своего менеджера пакетов и пытаетесь установить пакеты с помощью pip (что разумно сделать) менеджер пакетов не может сказать вам, какие пакеты нужны для зависимостей, а pip может только рассказать вам о зависимостях пакета Python , поэтому нет ничего, чтобы обеспечить это.

    Python - лучший язык программирования в мире.