尝试构建python c扩展名时,“系统找不到指定的文件”

时间:2019-03-14 01:54:45

标签: python python-c-api

我是python c扩展的新手。我正在复制一个打印“ hello world”的基本示例。 但是系统一直说“错误:[WinError 2]系统找不到指定的文件”。

setup.py

from distutils.core import setup, Extension
setup(name = 'myModule',
    version = '1.0',
    ext_modules = [Extension('myModule', ['myModule.c'])])

myModule.c

#include <Python.h>

// Function 1: A simple 'hello world' function
static PyObject* helloworld(PyObject* self, PyObject* args)
{
    printf("Hello World\n");
    return Py_None;
}

// Our Module's Function Definition struct
// We require this `NULL` to signal the end of our method
// definition
static PyMethodDef myMethods[] = {
    { "helloworld", helloworld, METH_NOARGS, "Prints Hello World" },
{ NULL, NULL, 0, NULL }
};

// Our Module Definition struct
static struct PyModuleDef myModule = {
    PyModuleDef_HEAD_INIT,
    "myModule",
    "Test Module",
    -1,
    myMethods
};

// Initializes our module using our above struct
PyMODINIT_FUNC PyInit_myModule(void)
{
    return PyModule_Create(&myModule);
}

我尝试将out_string = check_output(['gcc', '-dumpmachine'])文件中的所有404 cygwincompiler.py行更改为     out_string = check_output(['gcc', '-dumpmachine'], shell=True)” 还是没有运气。

我的代码中是否存在基本错误?我听说c源文件的名称无关紧要。 Here is the terminal image

1 个答案:

答案 0 :(得分:0)

最有可能的是,这意味着您没有对应于您的Python版本的受支持的MS VC编译器安装。

有关支持的配置,请参见https://wiki.python.org/moin/WindowsCompilers。另请注意,您使用的是distutils而不是推荐的setuptoolsdistutils仅支持最少的编译器设置,请参见https://wiki.python.org/moin/WindowsCompilers#Distutils_notes

由于您使用的是Anaconda Python,而不是正式版本,因此您可能还需要从Anaconda提示符下运行build命令,以正确配置构建环境。