2016-06-27 12 views
2

Ich möchte ein Skript numpy aus einer C++ eingebetteten Python-Laufzeit aufrufen, indem ich den Laufzeitpfad über das numpy Modul innerhalb der Site-Pakete informiert.Importieren von Numpy in eingebetteter Python-C++ - Anwendung

Jedoch bekomme ich den Fehler:

cannot import name 'multiarray'

von \ Lib \ site-packages \ numpy \ core__init_.py auf der Linie

from . import multiarrray 

ich versucht habe, die os.path einstellen zu sei xxx \ numpy \ core aber es scheint immer noch nicht die Multiarray.pyd Datei während der Import-Anweisung zu finden

Ich habe ähnliche Fragen gestellt, aber keine der Antworten scheinen relevant für meinen Fall.

Ich verwende Python 3.4.4 (32 Bit) und haben Numpy 1.11.1 mit dem Rad numpy-1.11.1-cp34-none-win32.whl

python -m pip install numpy-1.11.1-cp34-none-win32.whl

ohne Fehler abgeschlossen installiert .

Scheint wie die Fehlermeldung möglicherweise more general als nur eine unvollständige PYTHONPATH?

Denken Sie auch, es könnte breiter sein als Numpy in diesem ANY .pyd-basierte Paket, das aus der eingebetteten Umgebung importiert wird, wird dieses Problem haben?

Jede Hilfe wird geschätzt.

+0

sehe meine Antwort: https://Stackoverflow.com/a/46676082/3205529 – Malick

Antwort

0

Scheint wie die Antwort war, Python 3.4.1 zu installieren, um die python34.dll Version von 3.4.1 zu entsprechen.

1

Haben Sie sichergestellt, dass all Ihre NumPy-Dateien enthalten sind: \ numpy \ core \ include \ numpy \ waren während des Builds vorhanden? Das ist das einzige Mal, dass ich diese Art von Fehlern bekam, wenn der Build nicht alle NumPy-Includes finden konnte ... obwohl ich während der Einbettung festgestellt habe, dass das gesamte Verzeichnis (bereits auf Ihrem Build-Rechner gebaut) in einem Verzeichnis unter sein muss Py_SetPath(python35.lib;importlibs); vorausgesetzt, Importlibs ist ein Verzeichnis mit NumPy innerhalb und alles, was Sie sonst noch bündeln möchten.

+0

Danke. Ja, habe ich. Wir haben es geschafft, es auf einem anderen System arbeiten zu lassen ... nur Unterschied, der python 3.4.1 anstelle von 3.4.4 verwendet (python34.dll war für python 3.4.1) – Willeman

Verwandte Themen