我正在学习如何在C语言中扩展Python。
在开始之前,我下载了所有需要的软件包:
sudo apt-get install python2.7-dev
sudo apt-get install python3.5-dev
我从互联网上找到了一个例子,检查一切是否正常。
这是链接: https://docs.python.org/2/extending/extending.html
创建了setup.py并构建了模块。
python2 setup.py build
它没有给我任何错误 我创建了一个test.py并运行它 它只是说我导入的模块不存在 困惑我gcc'ed C文件,这是结果:
致命错误:Python.h:没有这样的文件或目录
我没有放弃,我尝试了这一点:
locate Python.h
,结果是:/home/*censored*/python/include/python2.7/
所以我使用了标志-I并再次尝试GCC代码:gcc -I /home/*censored*/python/include/python2.7/ myModule.c
结果是:
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o: in the function "_start":(.text+0x20): reference not defined a "main"
也
myModule.c:(.text+0x37): reference not defined a "PyArg_ParseTuple"
myModule.c:(.text+0x67): reference not defined a "Py_BuildValue"
collect2: error: ld returned 1 exit status
我还下载了tarball并运行了./configure make and make install
,但没有,仍然遇到这个问题。
这是我在StackOverflow上的第一个问题,如果我搞砸了一些关于文本格式的话,请跟我说实话。谢谢你,祝你有个美好的一天。