繁体   English   中英

具有独立python可执行文件(py2exe / pyinstaller)的OpenCV

[英]OpenCV with standalone python executable (py2exe/pyinstaller)

我有一个使用OpenCV从视频文件获取帧进行处理的python程序。 然后,我使用py2exe创建一个独立的可执行文件(也尝试使用pyinstaller并出现相同的错误)。 我的计算机和目标计算机都是Windows 7,但是目标计算机未安装python。 我使用OpenCV从视频文件中读取帧速率和单个图像。

问题:当我在目标计算机上运行可执行文件时,帧速率返回为0.0,而我无法读取帧。

如果在目标计算机上安装了python,则可执行文件将按预期运行,否则会产生此错误。 因此,似乎可执行文件中缺少某些内容,但是在创建可执行文件以指示可能缺少的内容时,我没有出现任何错误。

报告了类似问题的其他人通常不包括numpy依赖项(并得到指示错误的信息),但我包括了numpy。 我还尝试包括整个PyQt4模块,因为它被列为OpenCV的python xy站点上的依赖项(我已经拥有PyQt4的其他代码部分),而且这也不能解决问题。

我想我会继续为此发布答案,但是@otterb在对该问题的评论中提供了解决方案。 我在这里粘贴文本:

“ py2exe并不完美,因此经常会丢失一些需要的库或dll,pyd等。很可能是您缺少了opencv_highgui249.dl‌l和opencv_ffmpeg249.dll等。我会在没有启用单个可执行文件选项的情况下使用py2exe。而且,开始手动复制应用可能需要的文件。识别它们后,修改py2exe的setup.py,使其自动包含它们。”

但是我会指出,我使用pyinstaller而不是py2exe,因为在构建时遇到的问题更少。 我仍然必须手动复制opencv dll文件。在Windows 7上,它们位于以下位置:“ C:\\ Python27 \\ DLLs”,并且需要将它们复制到分发文件夹中,以便与其他dll位于同一路径上发行版附带的文件。

尝试使用pyinstaller ,使用pip下载:

pip install pyinstaller

如果您不知道如何安装pip,请尝试下载具有内置pip的python 2.7.9或更高版本,但不要忘记将python路径添加到环境变量中,本文中将提到此过程:

如何从CMD运行Pip命令

安装pyinstaller后,选择项目的主文件并运行此命令

pyinstaller yourprogram.py

它将创建带有应用程序文件的文件夹并命名您的文件名,最后确保在运行该命令时,numpy和opencv位于C文件夹中python27的lib-> site-packages文件夹中

希望能帮助到你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM