1

我正在尝试使用 Python py2exe 使用Enthought制作可执行文件。program.py开始于:

import pandas as pd
import pyper as pr
r=pr.R(use_pandas=True)

setup.py如下:

from distutils.core import setup
import py2exe
import matplotlib
import sys
opts={"py2exe":{"bundle_files"}}
sys.argv.append('py2exe')
opts = {'py2exe': {"bundle_files" : 3, "includes" : [ "matplotlib.backends", "matplotlib.backends.backend_qt4agg", "pylab","numpy", "matplotlib.backends.backend_tkagg"], 'excludes':['_gtkagg', '_tkagg', '_agg2', '_cairo', '_cocoaagg', '_fltkagg', '_gtk', '_gtkcairo'], 'dll_excludes': ['libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll']}}
setup(console=['program.py'],zipfile=None,options=opts,data_files=matplotlib.get_py2exe_datafiles())

运行后:创建了distbuildpython setup.py py2exe两个文件夹。但是当启动program.exe我得到了这个:

Dll load failed: The specified module could not be found
Traceback (most recent call last):  
File "program.py", line 1, in module  
File "pandas\__init__.pyc", line 6, in module  
File "pandas\hashtable.pyc", line 12, in module  
File "pandas\hashtable.pyc", line 10, in module  
File "numpy.pxd.", line 157, in init pandas.hastable (pandas\hastable.c:19547)  
File "numpy\__init__.pyc", line 143, in module  
File "numpy\lib\add_newdocs.pyc", line 9, in module  
File "numpy\lib\__init__.pyc", line 13, in module  
File "numpy\lib\polynomial.pyc", line 17, in module  
File "numpy\linalg\__init__.pyc", line 48, in module  
File "numpy\linalg\linalg.pyc", line 23, in module  
File "numpy\linalg\lapack_lite.pyc", line 12, in module  
File "numpy\linalg\lapack_lite.pyc", line 10, in __load  
ImportError: DLL load failed: The specified module could not be found** 

我在 64-Windows 7 上使用 Canopy 1.1.0 和 Pandas 0.12.0-2

谢谢你的帮助。

4

1 回答 1

2

看起来.exe构建者py2exe可能缺少 Canopy (EPD) 随附的英特尔 MKL DLL。根据您拥有的 Canopy (EPD) 版本,NumPy DLL 可能与英特尔 MKL DLL 链接。这些 DLL 应该在C:\Python27\Scripts目录中(或者Scripts如果您在不同的地方安装了 EPD,则应该在相应的目录中)——查找文件名以mk2.


编辑:上面的路径仅适用于较旧的 EPD 版本。对于 Canopy 的更新版本,DLLS 通常位于类似C:\Users\<user>\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.1.0-1371-win-x86_64\Scripts

于 2013-09-19T09:12:14.537 回答