Windows ImportError numpy.core.multiarray无法导入

时间:2016-08-02 07:32:53

标签: windows python-2.7 opencv numpy setup.py

我使用模块PyQt4,cv2(v.2.4.13),numpy(v.1.11.1)等编写应用程序。我使用Python(win32上的2.7.11),Windows7(x64)。

在Windows上编译(使用py2exe)之前,我的应用程序正常工作(从python运行)。

在setup.py中:

...
options = {
        'py2exe': {
        ...
        'compressed': True,
        'includes': ['cv2', 'numpy', 'sip', 'lxml._elementpath', 'PyQt4.QtCore', 'PyQt4.QtGui' ],
        'dll_excludes': ['MSVCP90.dll', 'w9xpopen.exe', 'Qwt.pyd', 'tcl85.dll', 'tk85.dll']
        }
}
...

在Windows上编译并尝试启动应用程序(* .exe文件)后,系统会返回此错误:

  

文件“cv2.pyc”,第12行,在模块

中      

文件“cv2.pyc”,第10行,在__load

中      

ImportError:numpy.core.multiarray无法导入。

提出的例外情况:

import cv2

在名为'dist'的文件夹中有文件numpy.core.multiarray.pyd。 在library.zip中有文件cv2,文件夹numpy。

2 个答案:

答案 0 :(得分:1)

<强>解决

问题出在py2exe部分的setup.py中。

我还将numpy-atlas.dll从C:\ Python27 \ Lib \ site-packages \ numpy \ core复制到site-packages以便成功构建。

setup.py:

excludes = [
    'Tkconstants', 'Tkinter', 'tcl', '_ssl',  'bz2',
    '_testcapi', 'pyexpat', 'select'
]
options = {
    'py2exe': {
        'compressed': True,
        'excludes': excludes,
        'includes': ['sip', 'lxml._elementpath', 'PyQt4.QtCore', 'PyQt4.QtGui', 'cv2', 'numpy'],
        'dll_excludes': ['MSVCP90.dll', 'w9xpopen.exe', 'Qwt.pyd', 'tcl85.dll', 'tk85.dll', 'MSVCR90.DLL']
    } 
}

答案 1 :(得分:1)

我遇到了类似的问题,解决方案就像将图像文件移动到创建可执行文件的文件夹一样简单。这适用于py2exe和pyinstaller。