Я включил интерпретатор Python 2.7.2 в приложение C++, используя API Python C.Как разрешить импорт сторонних библиотек скриптами, вызванными встроенным интерпретатором Python?
На целевых компьютерах я не могу гарантировать установку Python, поэтому я пытаюсь заставить встроенный интерпретатор посмотреть папку, в которой находится мое приложение. Итак, в прикладной диктории у меня есть папка Lib, Libs и DLL для Python.
В коде я использовал Py_SetPythonHome() Py_SetProgramName() для загрузки Python, а также для установки стандартных библиотек.
Один из тестовых сценариев, которые я использую есть:
import csv
import numpy
CSV-линии теперь хорошо. В каталоге \ libs я вижу пакеты сайта \ numpy. Но импорт прерывается на этой линии. Для этого я использую numpy 1.6.1.
Я думаю, мне, возможно, потребуется изменить путь поиска модуля - это правильно и как наилучшим образом достичь этого, чтобы позволить сторонним библиотекам, таким как numpy, быть доступными для моих скриптов? Вы можете предположить, что я мог бы создать абсолютный путь к каталогу numpy, если это поможет.
EDIT: Дополнительная информация - Мне удалось создать трассировку, и ошибка, которую я получаю, находится в \ numpy \ core \ _ init _.py, когда он пытается выполнить строку «import multiarray» с ошибкой «ImportError: ошибка загрузки DLL: указан указанный модуль connot». Проверяя каталог, я нахожу multiarray.pyd. Есть предположения?
Когда вы говорите «сбой импорта», вы имеете в виду, что он вызывает исключение ImportError? – deStrangis
Мне сложно понять, что на самом деле ошибка: в основном, я пытаюсь импортировать скрипт (который содержит экземпляр класса) с помощью PyImport_Import. Если я попытаюсь «импортировать numpy» в скрипт, я получаю нулевой указатель в результате. Если я прокомментирую это, я получаю ненулевой указатель – Fritz
@deStrangis: я проверил, и да, это ошибка импорта. У меня есть каталог nump site-packages во вложенном интерпретаторе sys.path, но импорт просто сбой ... – Fritz