【问题标题】:Windows ImportError numpy.core.multiarray failed to importWindows ImportError numpy.core.multiarray 导入失败
【发布时间】:2016-12-07 10:47:49
【问题描述】:

我使用 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。

【问题讨论】:

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


    【解决方案1】:

    已解决

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

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

    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']
        } 
    }
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2017-12-05
        • 2019-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-04
        • 2021-02-25
        • 2016-03-07
        • 2022-08-13
        相关资源
        最近更新 更多