无法在 Python 中导入 C 扩展文件
Can't import C extension file in Python
我的扩展 C 函数,在 pyc.c
#include<Python.h>
static PyObject *add(PyObject* self,PyObject* args) {
int a=9;
int b=10;
int c=a+b;
return Py_BuildValue(c);
//return Py_BuildValue( "s","hiiiii");
}
static char prin_docs[] = "prin( ): Any message you want to put here!!\n";
static PyMethodDef consume_methods[] = {
{"add", (PyCFunction)add,
METH_NOARGS, prin_docs},
{NULL}
};
PyMODINIT_FUNC initadd(void) {
Py_InitModule3(add, consume_methods,
"Extension module example!");
}
我的安装文件:
from distutils.core import setup, Extension
setup(name='add', version='1.0',
ext_modules=[Extension('add', ['pyc.c'])])
我的 Python 使用该 C 文件的程序:
import add
print(add.add());
上面的代码成功创建了一个 .so 对象,但我无法通过执行它来导入 Python 程序。我收到以下错误:
Traceback (most recent call last):
File "pycall.py", line 1, in <module>
import add
ImportError: No module named add
你真的 setup.py install
你的模块吗?如果您只构建它,它不会出现在 sys.path
.
我的扩展 C 函数,在 pyc.c
#include<Python.h>
static PyObject *add(PyObject* self,PyObject* args) {
int a=9;
int b=10;
int c=a+b;
return Py_BuildValue(c);
//return Py_BuildValue( "s","hiiiii");
}
static char prin_docs[] = "prin( ): Any message you want to put here!!\n";
static PyMethodDef consume_methods[] = {
{"add", (PyCFunction)add,
METH_NOARGS, prin_docs},
{NULL}
};
PyMODINIT_FUNC initadd(void) {
Py_InitModule3(add, consume_methods,
"Extension module example!");
}
我的安装文件:
from distutils.core import setup, Extension
setup(name='add', version='1.0',
ext_modules=[Extension('add', ['pyc.c'])])
我的 Python 使用该 C 文件的程序:
import add
print(add.add());
上面的代码成功创建了一个 .so 对象,但我无法通过执行它来导入 Python 程序。我收到以下错误:
Traceback (most recent call last):
File "pycall.py", line 1, in <module>
import add
ImportError: No module named add
你真的 setup.py install
你的模块吗?如果您只构建它,它不会出现在 sys.path
.