Возможно ли иметь отдельную программу, которая также является модулем CPython? - PullRequest
0 голосов
/ 09 декабря 2018

Я не очень знаком с внутренностями CPython с точки зрения C (хотя я углубился в них из-за боковых загрузок Python!), Но я понимаю основные принципы.

Документация Python говорит:

Эта структура, в свою очередь, должна быть передана интерпретатору в функции инициализации модуля.Функция инициализации должна иметь имя PyInit_name(), где name - это имя модуля и должно быть единственным не static элементом, определенным в файле модуля:

PyMODINIT_FUNC
PyInit_spam(void)
{
    return PyModule_Create(&spammodule);
}

Дело в том, что я не знаю, что это значит.Допустим, у меня есть простая комбо-программа на языке Python для модуля C:

#include "Python.h"

int main(int argc, char *argv[]) {
    return 6;
}

PyMODINIT_FUNC
PyInit_spam(void) {
     return PyErr_NoMemory();
}

Будет ли это успешно вызывать MemoryError при импорте в качестве модуля?Или вместо этого поднимется ImportError?

...