Встроенный Python в C++, переходящий в numpy, где импортная библиотека?

Я в Windows использую/встраиваю Python 3.4

Я пытаюсь встроить Python в существующее приложение C++. Я в значительной степени выполнил эту работу, но я не могу заставить работать numpy.

У меня установлен numpy через файл whl из http://www.lfd.uci.edu/~gohlke/pythonlibs/ Все прекрасно работает в python.exe, но когда я делаю что-то вроде...

PyRun_SimpleString("import numpy\n");

... в приложении C++ я получаю трассировку, которая заканчивается:

\Python\lib\site-packages\numpy\core\__init__.py, line 6, in <module>
from . import multiarray
cannot import 'multiarray'

Ну, это имело для меня некоторый смысл. Модуль multiarray находится в ...\Python34\Lib\site-packages\numpy\core\multiarray.pyd. Я думаю, что эти файлы .pyd в основном представляют собой библиотеки DLL, что означает, что необходима библиотека импорта.

Например, ...\Python34\lib содержит библиотеки импорта (я думаю) для других модулей, содержащихся в файлах pyd. Вы должны связать с библиотекой импорта. чтобы импортировать модуль в C++\Python (например, через PyRun_SimpleString("import _elementtree\n"); )

Я полагаю, мне нужна библиотека импорта для numpy, чтобы связать мое приложение на C++. Кто-нибудь знает навскидку, если сборка numpy из исходного кода выдает их? Процесс сборки выглядит сложным, но, возможно, это единственные варианты.

Кроме того, очевидно, что когда Python собран, он не может быть связан с библиотеками импорта для модулей, которые еще не установлены. Другими словами, мой python.exe не был связан с этой волшебной библиотекой импорта, которую я ищу, но он все еще может импортировать numpy, как? Могу ли я воссоздать это в своем приложении?


person sg_man    schedule 26.10.2015    source источник
comment
Это было решено? Имея ту же проблему   -  person Willeman    schedule 29.06.2016