Reputation: 1191
I am trying to compile a Python extension written in C on a CentOS machine. I am getting
error: Python.h: No such file or directory
It works fine on ubuntu, where I have python-dev installed using apt-get.
I tried installing python-devel using
yum install python-devel
but it is already installed. How do I fix this error?
Upvotes: 36
Views: 80896
Reputation: 35
I had the same problem with Python3.9 on Centos8. I fixed it by installing as below:
dnf install -y python39-devel
Upvotes: 0
Reputation: 119
If your are running Centos 8 , you can use :
dnf install -y python38-devel
dnf install -y python3-devel did not work for me.
Upvotes: 1
Reputation: 12099
If you using python3 You could install python34-devel for that
It's available on EPEL Repository and has python34-devel package available
You simply just run this command to get it installed
yum install python34-devel
Hope it's help
*note At this time python34-devel
is the most updated version of python 3.4
Upvotes: 43
Reputation: 14328
CentOS 7.4
Python 3.6.6
: yum -y install python36-devel
Python 2
: yum -y install python-devel
Ubuntu
Python 3.6
: apt-get install libpython3.6-dev
Upvotes: 14
Reputation: 22671
This depends on the Python you have!
You need a dev
package, the version X.X.X for Python X.X.X you have, you can search on https://centos.pkgs.org/7/ius-x86_64.
By example, if you have Python 3.6.5 from IUS, you need to install https://centos.pkgs.org/7/ius-x86_64/python36u-devel-3.6.5-1.ius.centos7.x86_64.rpm.html.
Upvotes: 0
Reputation: 2227
Install python3.4
(include pip) & python3.4-dev
packages on Centos6.X:
yum install http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/python34u-3.4.2-1.ius.centos6.x86_64.rpm
yum install http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/python34u-devel-3.4.2-1.ius.centos6.x86_64.rpm
Upvotes: 0
Reputation: 71
I too had similar problem.
./python/py_defines.h:39:20: fatal error: Python.h: No such file or directory
Whereas the find command showed that the python.h
exists.
The above solutions did not work however the below command execution worked for me.
yum install python27-python-devel.x86_64
Not much different but wasted lots of time.
Upvotes: 0
Reputation: 741
I had a similar problem where default Python was 2.7 but pip was running against 3.4, and I wanted to use 2.7. So I did: yum remove python34-pip
and yum install python2-pip
. Solved it!
Upvotes: 0
Reputation: 409186
On my system the Python.h
header file is in the path /usr/include/python2.6/
. As this path is not searched by the pre-processor by default, you have to add it to the list of paths to search. This is done with the -I
option to the compiler, like this:
$ gcc -I/usr/include/python2.6 source.c -o program
Change the path above to the actual path on your system. You can find it either with the find
command as proposed in a comment, of with the locate
command if it's installed.
Upvotes: 15