小编S. *_*rag的帖子

C 扩展在 Python 3.7 中不起作用说 ImportError: 动态模块没有定义模块导出函数 (PyInit_loop)

我创建了一个 C 扩展来创建一个循环并打印 10 个对象。它编译成功,但是当我将它导入 python 程序并编译它时,终端给我一个错误说:

导入错误:动态模块没有定义模块导出函数(PyInit_loop)

在 Python 3.7 中使用 ubuntu 19.04。我已经创建了一个 virtualenv,我正在做所有的工作。在任何地方都找不到具体的解决方案,但我有人说 C 文件正在与我系统中的 Python2.7 挂钩,但由于我使用的是 virtualenv,我不希望情况会如此。第一次这样做。

这是我的 C 扩展文件

#include <Python.h>
#include <stdio.h>

static PyObject* loop(PyObject* self)
{
    int i =0;
    for(i=0;i<10;i++)
    {
        printf("The number is %d\n",i);
    }
    Py_RETURN_NONE;
}

static char loop_docs[] = "loop(): This function is going to create a printing loop for 10 times.\n";

static PyMethodDef loop_methods[] = {
    {"loop", (PyCFunction)loop, METH_NOARGS, loop_docs},
    {NULL}
};

static struct PyModuleDef loop_module_def = 
{
    PyModuleDef_HEAD_INIT,
    "loop", …
Run Code Online (Sandbox Code Playgroud)

c virtualenv importerror python-3.x

5
推荐指数
1
解决办法
2375
查看次数

标签 统计

c ×1

importerror ×1

python-3.x ×1

virtualenv ×1