13

Calling

pip install SQLAlchemy

I get an error:

lib/sqlalchemy/cextension/processors.c:10:20: fatal error: Python.h: No such file or directory

As far as I know, I have the correct Python version (2.7.3) and OS (Ubuntu 12.04) (See below.) for this to work. Am I doing anything wrong?

The install does work as

pip install --global-option='--without-cextensions' SQLAlchemy"

but I want the C extensions.

Full output:

root@mycomputer:/# pip install SQLAlchemy
Downloading/unpacking SQLAlchemy
  Downloading SQLAlchemy-0.8.3.tar.gz (3.9Mb): 3.9Mb downloaded
  Running setup.py egg_info for package SQLAlchemy

    warning: no files found matching '*.jpg' under directory 'doc'
    no previously-included directories found matching 'doc/build/output'
Installing collected packages: SQLAlchemy
  Running setup.py install for SQLAlchemy
    building 'sqlalchemy.cprocessors' extension
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c lib/sqlalchemy/cextension/processors.c -o build/temp.linux-x86_64-2.7/lib/sqlalchemy/cextension/processors.o
    lib/sqlalchemy/cextension/processors.c:10:20: fatal error: Python.h: No such file or directory
    compilation terminated.
    ***************************************************************************
    command 'gcc' failed with exit status 1
    WARNING: The C extension could not be compiled, speedups are not enabled.
    Failure information, if any, is above.
    Retrying the build without the C extension now.
    ***************************************************************************

    warning: no files found matching '*.jpg' under directory 'doc'
    no previously-included directories found matching 'doc/build/output'
    ***************************************************************************
    WARNING: The C extension could not be compiled, speedups are not enabled.
    Plain-Python build succeeded.
    ***************************************************************************
Successfully installed SQLAlchemy
Cleaning up...
root@mycomputer:/#

Python Version:

root@mycomputer:/#python -V
Python 2.7.3
root@mycomputer:/#

Ubuntu Version:

root@mycomputer:/#cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04 LTS"
root@mycomputer:/#
Pat Zabawa
  • 730
  • 1
  • 11
  • 23

2 Answers2

23

You need to install the python-dev (or similar name) package for your version of Python. It includes all the header files needed to compile C extensions. These files are (unfortunately) not included in the default python packages.

For Ubuntu, the command is

sudo apt-get install python-dev

or

sudo apt-get install python3-dev

depending on which version you're using.

MattDMo
  • 100,794
  • 21
  • 241
  • 231
  • Related question: http://stackoverflow.com/questions/4097339/missing-python-h-while-trying-to-compile-a-c-extension-module With instructions for how to install python-dev. – Jaran May 02 '14 at 14:02
  • 1
    Note: the package is named 'python3-devel' on RPM based distros. – Eric Haynes Mar 13 '16 at 03:55
1
sudo apt-get install python-dev -y
cizixs
  • 12,931
  • 6
  • 48
  • 60