What is python-dev package used for

cpython, header-files, python

Solution

python-dev

`python-dev` contains the header files you need to build Python extensions.

lxml

`lxml` is a Python C-API extension that is compiled when you do `pip install lxml`. The lxml sources have at least something like `#include <Python.h>` in the code. The compiler looks for the header file `Python.h` during compilation, hence those header files need to be on your system such that they can be found.

`-dev` packages on Linux

On Linux typically, the binary libraries and header files of packages like Python are separate. Hence you can have Python (e.g. package `python`) installed and everything works fine. But when you want to build extensions you need to install the corresponding `-dev` package.

Problem

I recently installed `lxml`. Before that, I had to install all the dependencies for that. So I tried to install `liblxml2-dev`, `liblxslt1-dev` and `python-dev` (google-searched for what packages are required for `lxml`) but even after that, I could not able to install `lxml` by using the command `pip install lxml`. However as because I am using Python 3.4.0, I thought that may be there are different version of `python-dev` (thought came due to facing some similar version conflict problem). So I tried to install `python3-dev`. Then I tried to install `lxml` using the same command said earlier and that worked!!! I google-searched for those sentences and I could able to understand the meaning of `lxml` and `xslt`. I found a link for `python-dev` but I am not still sure what it is actually doing. OS - Ubuntu

Original source