Numpy Pyinstaller ImportError: cannot import name multiarray

Bin ich der Begegnung mit einem ähnlichen problem berichtet hier, das scheint zu sein, eine ungelöste Frage.

Nach dem kompilieren eine exe-Datei, eine pyinstaller bauen, wirft die folgende Fehlermeldung, die wahrscheinlich verursacht durch die numpy\core\ init.py

Gibt es einige Vorschläge, dass es hat zu tun mit widersprüchlichen numpy-Installationen habe ich jedoch deinstalliert und neu installiert mehrere Male, und suchte für alle anderen Anlagen ohne Glück.
Derzeit laufen mit numpy-1.9+MKL-Binärdateien.

Habe ich auch gekennzeichnet, die multiarray.pyd-Datei in der spec-Datei als binary zu packen. Kein Glück.

Keine Ahnung, was die Ursache dieses, wie ich bin nicht besonders vertraut mit der init-Datei-Struktur. Irgendeine Idee, wie man diese importiert werden?

Traceback des Fehlers:

Traceback (most recent call last):
  File "<string>", line 50, in <module>
  File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "C:\Users\Hp\PycharmProjects\GISdev\build\gis_helper2\out00-PYZ.pyz\mpl_toolkits.basemap", line 15, in <module>
  File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "C:\Users\Hp\PycharmProjects\GISdev\build\gis_helper2\out00-PYZ.pyz\matplotlib", line 133, in <module>
  File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "C:\Users\Hp\PycharmProjects\GISdev\build\gis_helper2\out00-PYZ.pyz\matplotlib.rcsetup", line 19, in <module>
  File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "C:\Users\Hp\PycharmProjects\GISdev\build\gis_helper2\out00-PYZ.pyz\matplotlib.colors", line 52, in <module>
  File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "C:\Users\Hp\PycharmProjects\GISdev\build\gis_helper2\out00-PYZ.pyz\numpy", line 200, in <module>
  File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "C:\Users\Hp\PycharmProjects\GISdev\build\gis_helper2\out00-PYZ.pyz\numpy.add_newdocs", line 13, in <module>
  File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "C:\Users\Hp\PycharmProjects\GISdev\build\gis_helper2\out00-PYZ.pyz\numpy.lib", line 8, in <module>
  File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "C:\Users\Hp\PycharmProjects\GISdev\build\gis_helper2\out00-PYZ.pyz\numpy.lib.type_check", line 11, in <module>
  File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "C:\Users\Hp\PycharmProjects\GISdev\build\gis_helper2\out00-PYZ.pyz\numpy.core", line 14, in <module>
ImportError: cannot import name multiarray

Mögliche Ursache des Problems stammt aus der init-Datei:

from __future__ import division, absolute_import, print_function

from .info import __doc__
from numpy.version import version as __version__

# disables OpenBLAS affinity setting of the main thread that limits
# python threads or processes to one core
import os
envbak = os.environ.copy()
if 'OPENBLAS_MAIN_FREE' not in os.environ:
    os.environ['OPENBLAS_MAIN_FREE'] = '1'
if 'GOTOBLAS_MAIN_FREE' not in os.environ:
    os.environ['GOTOBLAS_MAIN_FREE'] = '1'
from . import multiarray
os.environ.clear()
os.environ.update(envbak)
del envbak
del os

from . import umath
from . import _internal  # for freeze programs
from . import numerictypes as nt
multiarray.set_typeDict(nt.sctypeDict)
Ich habe das Gefühl, das hängt mit dem fehlen der .py Dateien in den numpy.core-Modul. Nur pyd-Dateien vorhanden sind, noch die init-Datei versucht zu importieren, das Modul multiarray.
Einige Dinge, die Sie hinzufügen könnte, um die Frage zu stellen Diagnose ein bisschen schneller: post den Inhalt .spec - Datei für das Projekt (d.h. in das Verzeichnis, wo Sie laufen pyinstaller haben, müssen Sie eine Datei namens GISdev.spec oder ähnliches. Versuchen Sie, mit --onedir - Modus - siehe hier für details. Ich erinnere mich, Suche nach einem nicht-verpackt Stück eine Bibliothek über, die Strecke einmal...
OK - ich habe einige Zeit auf dieser. Ich habe gerade ein clean install von pyinstaller auf Windows (ausgegangen von Ihrem Pfad, name) und eine minimale Datei, die aus import numpy as np gefolgt von print numpy.__version__. Dies Alles Nur Gearbeitet™. Früher habe ich Python 2.7 (wieder davon ausgegangen, von Ihrem Pfade) und numpy 1.9. Können Sie eine minimal-version von Ihr python-code um, wo es nicht klappt - schauen Sie unter stackoverflow.com/help/mcve für Hilfe, wie man eine minimal-Fall, scheitert in der Weise, die Sie beschreiben.
Sorry, ich habe nicht viel Zeit an diesem Abend. Eine weitere Frage - Sie die exe-Datei aus dem dist Verzeichnis nicht build, richtig? Wenn nicht - das könnte das problem sein (obwohl ich würde erwarten, dass es scheitern früher mit "nicht finden können-Win32" oder ähnlich. Wenn das ist nicht das problem - Sie könnten versuchen, ein pip uninstall - und re-installieren, das ist eine nützliche Sache, zu beseitigen mindestens.
Gerne helfen - wollen Sie schreiben, eine Antwort, oder soll ich? Ich Hinweis Sie sagen "(meistens)". Ich hoffe, Sie arbeitete die letzten Ecken. Wenn das problem ist, dass Sie jetzt nicht auch einige Binärdateien, die Sie wollen - posten Sie Ihre .spec - Datei, und wir können daran arbeiten es aus. a.binaries ist ein Mitglied der Analysis Objekt, sondern eine Datei. Vielleicht möchten Sie sich an pythonhosted.org/PyInstaller/#adding-files-to-the-bundle. Es ist eine gute Idee, immer nach der .spec mit pyinstaller Fragen wie ich oben sagte - sonst

InformationsquelleAutor Praxis | 2015-09-28

Schreibe einen Kommentar