2012-04-19 135 views
5

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

我尝试过使用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, 
) 

任何想法如何,我可以解决这个问题? 这是我第一次部署,我可能会错过一些东西。

谢谢!

回答

2

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

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

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

所以我的工作方案是最后: 选项= { 'py2exe':{ 'bundle_files':1, '包括': 'numpy的'}},

最终的可执行文件是相当大的,但运行平稳。

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

谢谢你们的帮助。

+1

4年前你问过这个问题。我很好奇,你是否试过另一台没有安装cv的电脑?我很想知道它是否适用于这种情况。 – Fabio 2016-08-14 23:08:42

+0

和上面一样,我很想知道它是如何工作的 – Aphire 2017-02-15 19:56:15

+0

这已经很长时间了,所以我不会记得,但我非常有信心在没有OpenCV的PC上尝试过。 :) – jlengrand 2017-02-16 08:36:02

2

根据this post,py2exe没有检测到这个模块是在ZIP压缩文件中需要的。我不知道正确的语法,所以你必须要检查的文档,但你可以尝试:

python setup.py py2exe -p cv2 

或者你可以尝试调整setup.py以下几点:

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

如果你愿意尝试完全不同的东西,看看bbfreeze

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

3

我也推荐使用PyInstaller。我用它参考了我的一个项目,该项目既引用了pycrypto又引用了扭曲,它的功能就像一个魅力。

0

我遇到了同样的问题。我通过将图像文件移动到创建可执行文件的文件夹解决了这个问题。这对py2exe和pyinstaller都有效。

相关问题