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

2024-04-19 21:50:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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,
)

知道我怎么解决这个问题吗? 这是我第一次想部署,我可能遗漏了一些东西。

谢谢!


Tags: 文件topycoreimportnumpy应用程序可执行文件
3条回答

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

python setup.py py2exe -p cv2

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

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

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

create standalone executables from python scripts

我还建议使用PyInstaller。我把它用于我的一个项目,它引用了pycrypto和twisted,工作起来就像一个符咒。

谢谢卡尔菲利普,你让我上了轨道。

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

实际上,opencv被正确地找到了,但是库本身具有numpy依赖性,这是没有被检测到的。

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

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

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

谢谢你们的帮助。

相关问题 更多 >