для 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.
Фактически, в конце он работал после того, как я скопировал все библиотеки DLL в папку C: \ Anaconda2 \ Library \ bin в папку dist. –
Какие две библиотеки DLL? ссылка не работает. – Ewan
Для моего случая это libiomp5md.dll и mkl _ *. Dll – Ewan