Sam
Sam

Reputation: 1276

Packaging OpenCV with a python app

So I'm contemplating what language to use in the development of an app that uses OpenCV. As a part of my decision, I'm interested in knowing how easy/difficult it is to include the opencv library in the final app. I'd really like to write this in python because the opencv bindings are great, python's easy, etc.

But I haven't been able to find a clear answer on stuff like "does py2app automatically bundle opencv when it sees the import cv line" (I think not) and if not, then is there a known way to do this?

In general, I would like to know the best way to distribute a python desktop app with opencv.

Upvotes: 6

Views: 3750

Answers (2)

bwalenz
bwalenz

Reputation: 332

I've effectively packaged, deployed, and shipped a Python app using OpenCV with cxFreeze.

http://cx-freeze.sourceforge.net/

Yes, cxFreeze auto picked up the python extensions to OpenCV. I had to manually copy the OpenCV DLLs (Windows), but that was a minor issue that can be solved by a post-processing step in cxFreeze. It does pick up other DLL's, so I'm not sure what the issue was.

In fact, it worked so well I was surprised. The ONLY thing it didn't pick up properly was a QT library. Basically here were my steps (I'm using QT so ignore that part if you aren't):

  1. cxfreeze App.py --target-dir App --base-name Win32GUI --include-modules PySide.QtNetwork
  2. Copy over the opencv\build\x86\vc9\bin files to the App directory.

That's it.

Upvotes: 1

Vinayak Kolagi
Vinayak Kolagi

Reputation: 1881

You can have a look at http://www.pyinstaller.org/ It's great and it packages the necessary dll for opencv.

For opencv to work it py2exe also package numpy. Make sure you add a dependency for it in case you are using py2exe.

Upvotes: 0

Related Questions