我试图在CentOS机器上编译一个用C编写的Python扩展。
error: Python.h: No such file or directory
它在ubuntu上运行得很好,我在ubuntu上用apt-get安装了python-dev。我试着安装python-devel
yum install python-devel
但它已经安装了。如何修复此错误?
wfsdck301#
如果您使用python3,您可以为此安装python34-devel它在EPEL Repository上可用,并且有python34-devel package可用您只需运行此命令即可安装
yum install python34-devel
希望能帮上忙
*注意目前python34-devel是python 3.4的最新版本
python34-devel
lymnna712#
在我的系统中,Python.h头文件位于路径/usr/include/python2.6/中。由于预处理器默认不搜索此路径,因此必须将其添加到要搜索的路径列表中。这是通过编译器的-I选项完成的,如下所示:
Python.h
/usr/include/python2.6/
-I
$ gcc -I/usr/include/python2.6 source.c -o program
将上面的路径更改为您系统上的实际路径。您可以使用注解中建议的find命令或locate命令(如果已安装)找到它。
find
locate
mec1mxoz3#
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
wb1gzix04#
对于8分以上
dnf install -y python3-devel
vktxenjb5#
如果您运行的是Centos 8,则可以用途:
dnf install -y python38-devel
dnf安装-y python3-devel 对我不起作用。
qlvxas9a6#
我遇到过一个类似的问题,默认的Python是2.7,但是pip运行的是3.4,我想使用2.7。所以我做了:yum remove python34-pip和yum install python2-pip,解决了!
yum remove python34-pip
yum install python2-pip
gj3fmq9x7#
我也有类似问题。./python/py_defines.h:39:20:创建一个新的文件夹。致命错误:Python.h:没有这样的文件或目录而find命令显示python.h存在。上述解决方案不起作用,但下面的命令执行对我起作用。
python.h
yum install python27-python-devel.x86_64
没有太大的不同,但浪费了很多时间。
bvpmtnay8#
在Centos6.X上安装python3.4(包括pip)和python3.4-dev软件包:
python3.4
python3.4-dev
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
ukqbszuj9#
这取决于你拥有的Python!你需要一个dev包,你拥有的Python X.X. X的X.X.X版本,你可以在https://centos.pkgs.org/7/ius-x86_64上搜索。例如,如果你有IUS的Python 3.6.5,你需要安装https://centos.pkgs.org/7/ius-x86_64/python36u-devel-3.6.5-1.ius.centos7.x86_64.rpm.html。
dev
9条答案
按热度按时间wfsdck301#
如果您使用python3,您可以为此安装python34-devel
它在EPEL Repository上可用,并且有python34-devel package可用
您只需运行此命令即可安装
希望能帮上忙
*注意目前
python34-devel
是python 3.4的最新版本lymnna712#
在我的系统中,
Python.h
头文件位于路径/usr/include/python2.6/
中。由于预处理器默认不搜索此路径,因此必须将其添加到要搜索的路径列表中。这是通过编译器的-I
选项完成的,如下所示:将上面的路径更改为您系统上的实际路径。您可以使用注解中建议的
find
命令或locate
命令(如果已安装)找到它。mec1mxoz3#
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
wb1gzix04#
对于8分以上
vktxenjb5#
如果您运行的是Centos 8,则可以用途:
dnf安装-y python3-devel 对我不起作用。
qlvxas9a6#
我遇到过一个类似的问题,默认的Python是2.7,但是pip运行的是3.4,我想使用2.7。所以我做了:
yum remove python34-pip
和yum install python2-pip
,解决了!gj3fmq9x7#
我也有类似问题。
./python/py_defines.h:39:20:创建一个新的文件夹。致命错误:Python.h:没有这样的文件或目录
而find命令显示
python.h
存在。上述解决方案不起作用,但下面的命令执行对我起作用。
没有太大的不同,但浪费了很多时间。
bvpmtnay8#
在Centos6.X上安装
python3.4
(包括pip)和python3.4-dev
软件包:ukqbszuj9#
这取决于你拥有的Python!
你需要一个
dev
包,你拥有的Python X.X. X的X.X.X版本,你可以在https://centos.pkgs.org/7/ius-x86_64上搜索。例如,如果你有IUS的Python 3.6.5,你需要安装https://centos.pkgs.org/7/ius-x86_64/python36u-devel-3.6.5-1.ius.centos7.x86_64.rpm.html。