【问题标题】:create executable for application using opencv?使用opencv为应用程序创建可执行文件?
【发布时间】:2012-04-19 20:00:44
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: python windows opencv exe py2exe


    【解决方案1】:

    我还建议使用PyInstaller。我将它用于我的一个项目,该项目同时引用了 pycrypto 和 twisted,它就像一个魅力。

    【讨论】:

      【解决方案2】:

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

      python setup.py py2exe -p cv2
      

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

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

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

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

      【讨论】:

        【解决方案3】:

        感谢 karlphilip,你让我走上了正轨。

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

        其实opencv是正确找到的,但是库本身有numpy依赖,没有检测到。

        所以我的工作解决方案最终是: options = {'py2exe': {'bundle_files': 1, 'includes': 'numpy' } },

        最终的可执行文件相当大,但运行流畅。

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

        感谢两位的帮助。

        【讨论】:

        • 你在 4 年前问过这个问题。我很好奇,你在另一台没有安装 open cv 的电脑上试过吗?我很想知道它在这种情况下是否有效。
        • 已经很久了,所以我不太记得了,但我很有信心我确实在没有 OpenCV 的 PC 上尝试过这个。 :)
        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2012-01-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多