я глотнул, чтобы сгенерировать модуль питона, который оборачивает некоторые C++ код C++:не в состоянии импортировать модуль питона, порожденную глотка в
мой .и файл:
%module module_test
%{
#define SWIG_FILE_WITH_INIT
#include "headers.h"
%}
%include "headers.h"
Я побежал эти команды :
-C++ SWIG -python swig.i
-Wall -c SWIG ++ -python -Внешние-среда runtime_swig.h
После создания этого файла были созданы файлы module_test.py и _module_test.pyd. Обертка отлично работает на питоне.
Теперь, с другой C++ проекта я пытаюсь загрузить этот новый модуль питона, используя следующий код:
Py_Initialize();
PySys_SetPath(L"path_to_my_files");
PyObject * pName = PyString_FromString("module_test.py");
PyObject *module = PyImport_Import(pName);
if(module == NULL)
{
PyErr_Print();
std::cout << "module == NULL !!";
exit(-1);
}
Однако импорт терпит неудачу с ошибкой:
import imp
ImportError: No module named 'imp'
Может
кто-то скажите, пожалуйста, что происходит? Файл module_test.py, сгенерированный swig, выполняет «импортный имп» в коде, но этот импорт никогда не прерывался при запуске файла из python ... Нужно ли мне указывать что-то еще, чтобы код на C++ знал, что " imp "есть?
спасибо!
Вы также можете быть заинтересованы в http://stackoverflow.com/a/25645539/168175, который строит модуль в. – Flexo