Gir*_*rma 8 64-bit numpy py2exe matplotlib python-2.7
系统:
Windows 7 64位
Anaconda 2.7 64位
py2exe 64位
背景:
我使用如下所示的py2exe和setup.py文件将我的python代码转换为.exe:
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()
)
Run Code Online (Sandbox Code Playgroud)
但这给了我一些错误,说有两个文件存在版本冲突.所以我改变了两个文件即.dist/tcl/tcl8.5/init.tcl(第19行)和dist/tcl/tk8.5/tk.tcl(第18行).在我的情况下,我将版本从8.5.15更改为8.5.18.我通过查看错误日志中的错误指定的路径找到了这两个文件的位置.然后.exe工作得很好.
问题:
我压缩了包含.exe文件的dist文件夹.然后,我在另一台计算机上解压缩它,但它没有在那里工作.以下是它显示的错误:
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.
Run Code Online (Sandbox Code Playgroud)
更新: 如果我在系统上安装Anaconda Python 2.7,则没有错误.但是,py2exe的用途是什么.
我遇到了同样的问题.解决方案已在以下链接中找到:
http://comments.gmane.org/gmane.comp.python.py2exe/4847
简而言之,py2exe的"dist"输出中缺少两个来自"C:\ Anaconda2\Library\bin"的dll.