2015-06-23 3 views
19

Недавно я установил lxml.Что такое пакет python-dev, используемый для

До этого мне пришлось установить все зависимости для этого. Так что я попытался установить liblxml2-dev, liblxslt1-dev и python-dev (Google искал какие пакеты необходимы для lxml)

, но даже после того, что я не мог в состоянии установить lxml с помощью команды pip install lxml.

Однако, поскольку я использую Python 3.4.0, я думал, что может быть другая версия python-dev (мысль пришла из-за столкновения с проблемой конфликта аналогичной версии). Поэтому я попытался установить python3-dev.

Затем я попытался установить lxml, используя ту же команду, что и раньше, и это сработало !!!

Как я новичок в этом. Поэтому я искал Google эти предложения , и я смог понять смысл lxml и xslt. Я нашел link для python-dev, но я еще не уверен, что он на самом деле делает.

Может кто-нибудь поможет :)

ответ

15

питон-DEV содержит файлы заголовков, необходимые для создания расширений Python. lxml - это расширение C-API Python, которое компилируется, когда вы делаете pip install lxml. Источники lxml имеют по крайней мере что-то вроде #include <Python.h>. Компилятор ищет файл Python.h во время компиляции, поэтому эти файлы должны быть в вашей системе, чтобы их можно было найти. В Linux обычно двоичные библиотеки и файлы заголовков пакетов, таких как python, являются отдельными. Следовательно, вы можете установить Python, и все работает нормально, но когда вы хотите создавать расширения, вам нужно установить соответствующий пакет dev.

+1

Вы сказали, что если хотите создать расширения, вам необходимо установить соответствующий пакет dev. Не могли бы вы объяснить об этом подробнее? Как заголовочные файлы строят расширения – Abhisek

+4

Файлы заголовков необходимы при создании расширения. Исходный код расширения ссылается на заголовочные файлы библиотек, которые он использует. Когда построено расширение Python, он использует общую библиотеку Python, которая содержит функции и структуры данных Python API C. Это относится не только к Python, но и ко всем библиотекам и приложениям, которые вы устанавливаете в своей системе.Всякий раз, когда вы пишете программу, использующую API-интерфейс библиотеки, для создания вашей программы необходим соответствующий пакет devel. – Bernhard

4

python-dev - это пакет, содержащий файлы заголовков для API Python C, который используется lxml, поскольку он включает в себя расширения Python C для высокой производительности.

1

python-dev содержит все необходимое для компиляции модулей расширения python (https://docs.python.org/2/extending/extending.html).

Обратите внимание, что Debian уже имеет пакет lxml для python 3 (упомянутый в http://lxml.de/installation.html); в общем, рекомендуется использовать упакованную версию. Я бы предложил pip uninstall lxml, а затем apt-get install python3-lxml.

Смежные вопросы