使用opencv为应用程序创建可执行文件?

时间:2012-04-19 20:00:45

标签: python windows opencv exe py2exe

我在Windows下用Python设计了一个小应用程序,它使用opencv。 我正在尝试创建一个可执行文件,以便任何人都可以安装和使用它,而无需安装python / opencv / numpy。 。 。

我尝试使用py2exe。它实际上创建了一个.exe文件,即使我在构建过程中发出警告:

*** copy dlls ***
copying C:\Windows\system32\MSVFW32.dll -> 
...
The following modules appear to be missing
['cv2.cv']

当我尝试使用命令行运行.exe文件时,我看到消息:

ImportError: numpy.core.multiarray failed to import

我的setup.py文件非常简单:

# creating executable here
from distutils.core import setup
import py2exe, sys, os

sys.argv.append('py2exe')

setup(
    options = {'py2exe': {'bundle_files': 1}},
    console=['facemovie.py'],
    zipfile = None,
)

知道如何解决这个问题吗? 这是我第一次部署,我可能会遗漏一些东西。

谢谢!

4 个答案:

答案 0 :(得分:3)

我还建议使用PyInstaller。我用它作为我的一个项目,引用了pycrypto和twisted,它就像一个魅力。

答案 1 :(得分:2)

根据this post py2exe 未检测到ZIP存档中需要此模块。我不知道正确的语法,所以你必须检查文档,但你可以尝试:

python setup.py py2exe -p cv2

或者您可以尝试将setup.py调整为以下内容:

options = {'py2exe': {'bundle_files': 1, 'packages': 'cv2' } },

如果您愿意尝试完全不同的事情,请查看bbfreeze

  

从python脚本创建独立的可执行文件

答案 2 :(得分:2)

谢谢karlphilip,你把我放在了轨道上。

我想避免“更改我的软件实用程序”解决方案,所以我坚持使用py2exe。

实际上,opencv被正确找到了,但是库本身有一个numpy依赖,但是没有检测到。

所以我的工作解决方案终于: options = {'py2exe':{'bundle_files':1,'包含':'numpy'}},

最终的可执行文件非常大,但运行顺畅。

我没有试过另一台没有安装软件的电脑,所以可能会有惊喜。

谢谢你的帮助。

答案 3 :(得分:0)

我遇到了同样的问题。我通过将图像文件移动到创建可执行文件的文件夹来解决它。这适用于py2exe和pyinstaller。