Вложение Python в C: проблемы с импортом локальных модулей

Мне нужно запустить скрипты Python в приложении на основе C. Я могу импортировать стандартные модули из библиотек Python, то есть:

PyRun_SimpleString("import sys") 

Но когда я пытаюсь импортировать локальный модуль, can

 PyRun_SimpleString("import can") 

возвращает сообщение об ошибке:

 Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named can 

Когда я набираю команду import can в IPython, система может ее найти.

Как я могу связать свое приложение с банком? Я попытался установить PYTHONPATH в свой рабочий каталог.

2 Solutions collect form web for “Вложение Python в C: проблемы с импортом локальных модулей”

Внедрение библиотеки Python не добавляет '' в sys.path как это делает интерактивный интерпретатор. Используйте PySys_SetPath() чтобы добавить соответствующий каталог.

Ой, посмотри, что я нашел .

Я нашел, что это работает намного более надежно,

 PyObject *sys = PyImport_ImportModule("sys"); PyObject *path = PyObject_GetAttrString(sys, "path"); PyList_Append(path, PyUnicode_FromString(".")); 
  • Как работает сборщик мусора и область работы C #?
  • Boost.Python вызывает по ссылке: TypeError: нет конвертера to_python (по значению) для типа C ++:
  • Сравнение PyQt и PySide
  • Вызов python из программы c ++ для распространения
  • Как разобрать источник C ++ в Python?
  • Cython std :: пара двух указателей, ожидаемых идентификатором или литералом
  • Есть ли тип данных в Python, аналогичный структурам на C ++?
  • Деградация производительности матричного умножения одиночных и двухточечных массивов на многоядерной машине
  • Python - лучший язык программирования в мире.