What is python-dev package used for
Solution 1:
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.
Solution 2:
python-dev
is the package that contains the header files for the Python C API, which is used by lxml
because it includes Python C extensions for high performance.
Solution 3:
python-dev contains everything needed to compile python extension modules (https://docs.python.org/2/extending/extending.html).
Note that Debian already has an lxml package for python 3 (mentioned at http://lxml.de/installation.html); in general it's a good idea to use the packaged version. I'd suggest pip uninstall lxml
and then apt-get install python3-lxml
.