2016-03-06 1 views
8

система:py2exe Файл "NumPy ядро ​​ multiarray.pyc", строка 10, в __load ImportError: DLL нагрузки не удалось:

для Windows 7 64-бит

Анаконда 2,7 64-битный

py2exe 64-разрядное

фона:

я преобразовал мой питон код .exe с помощью py2exe и setup.py файл, показанный ниже:

from distutils.core import setup 
import py2exe 

from distutils.filelist import findall 
import matplotlib 

opts = {"py2exe": { 
    "packages" : ['matplotlib'], 
    "includes": ['scipy', 'scipy.integrate', 'scipy.special.*','scipy.linalg.*'], 
     'dll_excludes': ['libgdk-win32-2.0-0.dll', 
          'libgobject-2.0-0.dll', 
      'libgdk_pixbuf-2.0-0.dll'] 
        } 
      } 

setup(
     windows = [{'script': "with_GUI.py"}], zipfile = None, 
     options= opts, 
     data_files = matplotlib.get_py2exe_datafiles() 
    ) 

Но это дало мне ошибку о том, что существует конфликт версий с двумя файлами. Поэтому я изменил два файла: dist/tcl/tcl8.5/init.tcl (строка 19) и dist/tcl/tk8.5/tk.tcl (строка 18). В моем случае я изменил версию с 8.5.15 до 8.5.18. Я нашел расположение двух файлов, посмотрев путь, указанный ошибкой в ​​журнале ошибок. Тогда .exe работал просто отлично.

Проблема:

Я застегнул на DIST папки, содержащую файл с расширением .exe. Затем я расстегнул его на другом компьютере, но он там не работает. Ниже ошибка показывает:

Traceback (most recent call last): 
    File "Moment_Final.py", line 5, in <module> 
    File "matplotlib\__init__.pyc", line 122, in <module> 
    File "matplotlib\cbook.pyc", line 33, in <module> 
    File "numpy\__init__.pyc", line 180, in <module> 
    File "numpy\add_newdocs.pyc", line 13, in <module> 
    File "numpy\lib\__init__.pyc", line 8, in <module> 
    File "numpy\lib\type_check.pyc", line 11, in <module> 
    File "numpy\core\__init__.pyc", line 14, in <module> 
    File "numpy\core\multiarray.pyc", line 12, in <module> 
    File "numpy\core\multiarray.pyc", line 10, in __load 
ImportError: DLL load failed: The specified module could not be found. 

Update: не Если я установлю Анаконды Python 2.7 на системе, нет ошибок. Но тогда, что такое использование py2exe.

ответ

5

Я столкнулся с той же проблемой. Решение было найдено по ссылке ниже:

http://comments.gmane.org/gmane.comp.python.py2exe/4847

Короче говоря, две библиотеки DLL из "C: \ Anaconda2 \ Library \ Bin" отсутствовали в "DIST" выход py2exe.

+0

Фактически, в конце он работал после того, как я скопировал все библиотеки DLL в папку C: \ Anaconda2 \ Library \ bin в папку dist. –

+0

Какие две библиотеки DLL? ссылка не работает. – Ewan

+3

Для моего случая это libiomp5md.dll и mkl _ *. Dll – Ewan

Смежные вопросы