cx_Freeze - opencv 兼容性

Posted

技术标签:

【中文标题】cx_Freeze - opencv 兼容性【英文标题】:cx_Freeze - opencv compatibility 【发布时间】:2017-11-17 21:19:30 【问题描述】:

每当我尝试使用 cx_Freeze 构建 exe 文件时,都会收到 numpy.core.multiarray failed to import 错误。

我的系统使用以下版本:

python 3.6.0

opencv 3.3.0

numpy 1.13.1

cx_Freeze 5.0

代码是:

import cv2
i=333
print(i)

仅当我删除 import cv2 行时,它才能正常运行(即构建一个好的 exe 文件)。

我列出的四个模块之间有什么不兼容的地方吗?

【问题讨论】:

【参考方案1】:

只有在我卸载 cx_Freeze 并改为安装 Pyinstaller 后,我才设法完成这项工作。它就像一个魅力。

【讨论】:

【参考方案2】:

如果这可以帮助你,我设法在 Linux 下使用 SimpleCV 制作了一个工作示例,配置如下:

python 2.7.12SimpleCV 1.3 numpy 1.11.0 cx_Freeze 5.1.1

示例代码cv2_example.py为:

import encodings
import cv2
print cv2.__version__
i = 333
print i

设置脚本setup.py是:

from cx_Freeze import setup, Executable

build_exe_options = 'packages': ['numpy']

exe = Executable(script='cv2_example.py', base=None)

setup(name='cv2_example',
      version='1.0',
      executables=[exe],
      options='build_exe': build_exe_options)

如果您将 cx_Freeze 升级到版本 5.1.1,我想这个示例也适用于您使用 python 3.6.0 和 numpy 1.11.0 的配置。

【讨论】:

以上是关于cx_Freeze - opencv 兼容性的主要内容,如果未能解决你的问题,请参考以下文章

iOS 上的 OpenCV ZXing 不兼容

打包python脚本为可执行文件的工具

opencv“向量迭代器不兼容”

OpenCV 与 std::vector 不兼容? (_crtIsValidHeapPointer 错误)

为 macOS 不兼容的库安装 opencv

OpenCV源码安装教程(兼容CUDA)