Я столкнулся с аналогичной проблемой с сообщением here, что, по-видимому, является нерешенной проблемой.Numpy Pyinstaller ImportError: невозможно импортировать имя multiarray
После компиляции EXE, pyinstaller сборка выдает следующее сообщение об ошибке, которая, вероятно, вызванная NumPy \ ядре \ init.py
Есть некоторые suggestions, что он должен делать с противоречивыми установками Numpy однако у меня есть несколько раз удалили и переустановили и без каких-либо успехов искали любые другие установки. В настоящее время работает с двоичными файлами numpy-1.9 + MKL.
Я также отметил файл multiarray.pyd в файле spec как двоичный файл для захвата. Не повезло.
Не знаю, что вызывает это, поскольку я не особенно знаком с структурой файла инициализации. Любая идея, как получить импорт?
Traceback ошибки:
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
Возможная причина проблемы, взятой из файла инициализации:
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)
У меня такое чувство, что это связано с отсутствием .py-файлов в модуле numpy.core. Существуют только файлы pyd, но файл инициализации пытается импортировать модуль multiarray. – Praxis
@ Рихард Снейп - код отлично работает в python 2.7 как с консоли, так и с Pycharm.Это происходит только тогда, когда exe запускается с ошибкой, поэтому я думаю, что это проблема совместимости с numpy-pyinstaller. Мне интересно, может ли быть декомпиляция из .pyd-файлов в .py. Источник ошибки. линии 14 в init.py вызовов: «от импорта multiarray» Numpy, очевидно, может обрабатывать загрузку .pyd динамически, когда не компилируется, но может потребоваться файл .py, когда он заморожен в ехе. – Praxis
Спасибо, Ричард, я был бы очень признателен за вашу помощь в этом вопросе. – Praxis