我在学校的电脑上,所以我无法安装任何东西。
我正在尝试创建可以在Python中运行的C代码。看来我发现的所有文章都要求你使用
#include <Python.h>
我这样做,但是当我编译它时抱怨没有这样的文件或目录。
计算机有Python(至少它在终端中有python
命令,我们可以运行我们想要的任何Python代码。)
我在终端输入了locate Python.h
但没有找到任何内容。
我有两个问题:
我可以编写可以在没有Python.h
的情况下用Python调用的C代码吗?
我错过了什么,计算机实际上有Python.h
?
答案 0 :(得分:47)
您需要包含python-dev
Python.h
包
答案 1 :(得分:42)
在Ubuntu上,您需要安装名为python-dev
的软件包。由于似乎没有安装此软件包(locate Python.h
没有找到任何内容)而且您无法自己在系统范围内安装它,我们需要一个不同的解决方案。
您可以在主目录中安装Python - 您无需任何特殊权限即可。如果您被允许使用Web浏览器并运行gcc,这应该适合您。为此
解压缩
tar xjf Python-2.7.2.tar.bz2
使用
构建和安装cd Python-2.7.2
./configure --prefix=/home/username/python --enable-unicode=ucs4
make
make install
现在,您在主目录中安装了完整的Python。编译时将-I /home/username/python/include
传递给gcc,以使其了解Python.h
。链接时传递-L /home/username/python/lib
和-lpython2.7
。
答案 2 :(得分:30)
你必须使用 #include“python2.7 / Python.h”而不是 #include“Python.h”。
答案 3 :(得分:22)
对于Ubuntu 15.10和Python 3,由于他们没有Python.h
但具有管理权限,因此可以解决此问题:
sudo apt-get install python-dev
sudo apt-get install python3-dev
sudo apt-get install libpython3-dev
sudo apt-get install libpython3.4-dev
sudo apt-get install libpython3.5-dev
答案 4 :(得分:16)
在ubuntu上,您只需在终端中键入sudo apt-get install python-dev -y
即可安装python-dev软件包。
答案 5 :(得分:6)
头文件现在由libpython2.7-dev提供。
您可以使用search form at packages.ubuntu.com找出提供的Python.h
包。
答案 6 :(得分:4)
我试图在CentOS 7机器上构建一个非常旧的omniORB副本时遇到了同样的问题。通过安装python开发库解决了这个问题:
# yum install python-devel
这将Python.h安装到:
/usr/include/python2.7/Python.h
答案 7 :(得分:4)
你需要安装python-dev
对于Ubuntu:
sudo apt-get install python-dev # for python2.x installs
sudo apt-get install python3-dev # for python3.x installs
有关更多发行版,请参阅 -
https://stackoverflow.com/a/21530768/6841045
答案 8 :(得分:4)
我在ubuntuforums(ubuntuforums)中找到答案,你可以将它添加到你的gcc'$(python-config --includes)'
gcc $(python-config --includes) urfile.c
答案 9 :(得分:2)
locate Python.h
如果输出为空,则找到您的python版本
python --version
让我们说它是X.x,即2.7或3.6、3.7、3.8 然后使用相同版本的python安装头文件和静态库
sudo apt-get install pythonX.x-dev
答案 10 :(得分:1)
转到Synaptic包管理器。重新加载 - &gt;搜索python - &gt;选择你想要的python包 - &gt;提交 - &gt;安装 适合我;)
确切地说,您需要安装的软件包是python-dev。
答案 11 :(得分:0)
这意味着你不是python dev的安装库。
如果您使用的是Linux操作系统,则可以通过以下命令单独解决此问题:
Ubuntu(Debian):
sudo apt-get install python-dev
(Py2)或sudo apt-get install python3-dev
(Py3)
Rehat(CentOS):
yum install python-devel
答案 12 :(得分:0)
这是因为Python.h
不在默认的包含文件夹(/usr/include/
)中。
安装Python-dev可能有所帮助:
$ sudo apt-get install python-dev
但主要是问题会持续存在,因为开发包是在包含文件夹本身(/usr/include/python2.7
或python3
)内的单独文件夹中创建的。
因此,您应该使用-I
中的gcc
选项指定库文件夹,或者创建指向这些文件夹内部所有内容的软链接(我更喜欢前一个选项)。
在-I
中使用gcc
选项:
$ gcc -o hello -I /usr/include/python2.7 helloworld.c
创建软链接
$ sudo ln -sv /usr/include/python2.7/* /usr/include/
答案 13 :(得分:0)
没有一个答案对我有用。如果您在Ubuntu上运行,则可以尝试:
使用python3:
sudo apt-get install python3 python-dev python3-dev \
build-essential libssl-dev libffi-dev \
libxml2-dev libxslt1-dev zlib1g-dev \
python-pip
使用Python 2:
sudo apt-get install python-dev \
build-essential libssl-dev libffi-dev \
libxml2-dev libxslt1-dev zlib1g-dev \
python-pip