Coder Social home page Coder Social logo

Comments (19)

skvark avatar skvark commented on August 19, 2024 5

Do you mean by "complete installation" the Python bindings?

Currently there is no pre-built packages for the OpenCV Python bindings on PyPI (=Python package index), but the aim of this repository is to provide them when we get all the builds stable (Linux and Windows are just about ready, but OS X needs more work). I have been very busy lately, but I'm going to focus more on this during next week so the packages should be available on PyPI soon.

In practice this means that when we are ready to push all of these wheels (=python's pre-built packages) to PyPI, one could simply install the OpenCV package with following command:

pip install opencv-python

and use it with the following import statement:

import cv2

If your project is simple, then you could just add the opencv-python dependency to your setup.py file. However, I recommend to use requirements.txt file for defining the dependencies if your project depends on many packages.

If you're using Windows, you can already install the opencv-python package manually by downloading a package from Appveyor https://ci.appveyor.com/project/skvark/opencv-python/build/artifacts and installing it with pip:

pip install name_of_the_wheel_file.whl

from opencv-python.

skvark avatar skvark commented on August 19, 2024 1

I feel very badly about not being able to formulate my question properly due to lack of Python terminology knowledge. Basically, I mean, I'm looking for a "ready to go" Python package that I can refer in my project. I expect this to result in my code downloading OpenCV as a dependency regardless of the platform it runs on, i.e. platform specific binaries.
Again, I don't even know whether it is achievable because I don't know much about packaging in Python world.

It's not a problem :) Python's packaging is currently a bit complicated: there are many ways to do it, but most of them are legacy. You can read more about the packaging from here: https://packaging.python.org/

In brief, this repository is simply just a bunch of automated build scripts (meant to be run on CI systems like Travis and Appveyor) which will compile OpenCV and embed it to a python wheel package. During the compilation the C++ code is wrapped in a special python compatible way (http://docs.opencv.org/3.1.0/da/d49/tutorial_py_bindings_basics.html#gsc.tab=0). The end result is shared library which is then copied to the actual Python package and can be imported with python.

This process is repeated multiple times for every platform (this is not a so called universal package due to an binary extension) and all the results will be uploaded to PyPI (in the future). For example, you can have a look at numpy and observe the many different .whl files for different platforms: https://pypi.python.org/pypi/numpy

pip install will then select the correct package from all the listed packages according to the platform on which it was run. In this case manual installation is needed before we start uploading opencv-python wheels to PyPI. And for the record, these "wheels" are just zip files :)

from opencv-python.

skvark avatar skvark commented on August 19, 2024 1

pip install opencv-python will install only the Python bindings but you do not need additional installations to use the bindings. This opencv-python package contains the special Python compatible OpenCV.

In practice this means that pretty much the whole OpenCV API is available via Python by importing cv2 after pip install has finished. OpenCV official docs have extensive tutorials on how to use the bindings, e.g http://docs.opencv.org/3.2.0/d3/df2/tutorial_py_basic_ops.html (http://docs.opencv.org/3.2.0/d6/d00/tutorial_py_root.html).

If you want to use OpenCV for example via C++ or some other language, then you have to install the whole official package from here: https://github.com/opencv/opencv/releases

If you are interested in how the bindings are generated, have a look at this: http://docs.opencv.org/3.2.0/da/d49/tutorial_py_bindings_basics.html

from opencv-python.

ZLCHEN007 avatar ZLCHEN007 commented on August 19, 2024 1

@ skvark could you assist below:

>>> import cv2 Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: /usr/local/lib/python3.6/site-packages/cv2.cpython-36m-aarch64-linux-gnu.so: undefined symbol: _Z11pyopencv_toIjEbP7_objectRT_PKc

from opencv-python.

skvark avatar skvark commented on August 19, 2024 1

This is not a Q&A forum and the question you're asking is not even related to this repository. Ask your question at Stack Overflow.

from opencv-python.

another-guy avatar another-guy commented on August 19, 2024

Do you mean by "complete installation" the Python bindings?

I feel very badly about not being able to formulate my question properly due to lack of Python terminology knowledge. Basically, I mean, I'm looking for a "ready to go" Python package that I can refer in my project. I expect this to result in my code downloading OpenCV as a dependency regardless of the platform it runs on, i.e. platform specific binaries.
Again, I don't even know whether it is achievable because I don't know much about packaging in Python world.

pip install opencv-python

This seems to be the way to go but it won't work in windows for me:

$ pip install opencv-python
Collecting opencv-python
  Could not find a version that satisfies the requirement opencv-python (from versions: )
No matching distribution found for opencv-python

If you're using Windows, you can already install the opencv-python package manually by downloading a package from Appveyor

Manual installation is exactly what I am trying to avoid. :)

Offtopic: I'd really appreciate you pointing me to documents that explain Python packaging so that I'm not asking stupid questions in stupid forms anymore. 😞

from opencv-python.

another-guy avatar another-guy commented on August 19, 2024

@skvark Thanks! Your intro is helpful! I don't think there's need in keeping this issue open. (btw, windows installation of wheel did actually work for me).

Olli-Pekka, is there a way for me to contact you directly regarding OpenCV or Python? I have 10 years of experience with .NET/Java and would love to be able to ramp up with Python quickly. Considering the style and structure of your explanatory messages, I believe you can be very helpful as a mentor for me. So, if you have time and are willing to I'd write you questions time to time. Let me know.

from opencv-python.

skvark avatar skvark commented on August 19, 2024

You can contact me for example via Twitter, I'll share my email address privately.

from opencv-python.

spencerahill avatar spencerahill commented on August 19, 2024

Sorry if this should be painfully obvious already, but I am still in need of clarification. Let's suppose I am on a machine on which openCV has not been installed. Will pip install opencv-python install opencv itself as well as the python bindings that are accessible within python via import cv2? Or does openCV itself need to be installed separately? Thanks.

from opencv-python.

spencerahill avatar spencerahill commented on August 19, 2024

@skvark thanks, that helps a lot. So, in other words, as long as the user only needs to interact with opencv through python, then pip install opencv-python gets them everything they need.

Given that the full opencv build is not trivial, that's a nice accomplishment!

from opencv-python.

skvark avatar skvark commented on August 19, 2024

Yes, that's correct. Please note that #14 and #17 may block some use cases (stuff related to video i/o and showing gui windows) on Linux / macOS.

And thanks! 😃

from opencv-python.

spencerahill avatar spencerahill commented on August 19, 2024

Great. It might be worth making this point more clearly in your documentation. I am new to opencv but I am otherwise not a novice, yet I still had this confusion. All the more so because the documentation of opencv itself (to me) is extremely haphazard.

Anyways, thanks again!

from opencv-python.

skvark avatar skvark commented on August 19, 2024

I'll update the readme file.

from opencv-python.

shaikhrahil avatar shaikhrahil commented on August 19, 2024

@ skvark , I get the following error on giving pip install opencv-python on my pi zero. Any suggestions

import cv2
Traceback (most recent call last):
File "", line 1, in
File "/home/pi/.local/lib/python3.5/site-packages/cv2/init.py", line 4, in
from .cv2 import *
ImportError: libImath-2_2.so.12: cannot open shared object file: No such file or directory

from opencv-python.

skvark avatar skvark commented on August 19, 2024

I'm sorry, this repository does not provide pre-built wheels for ARM-based platforms. You should contact the person who has created the wheels you are using.

from opencv-python.

shaikhrahil avatar shaikhrahil commented on August 19, 2024

Alright , thanks for the quick reply @skvark !!

from opencv-python.

abdur12345 avatar abdur12345 commented on August 19, 2024

i have error in my command prompt when i want to install opencv opencv-3.4.2-vc14_vc15.
when i type pip3 install opencv-python or
type pip install opencv-python and there is writing error
"Could not find a version that satisfies the requirement opencv-contrib-python (from versions: )
No matching distribution found for opencv-contrib-python"

from opencv-python.

Hooman08 avatar Hooman08 commented on August 19, 2024

@skvark Hi, obviously I'm new to these problems but I have a weird problem.
I'm using mac os and using mac terminal, I installed opencv and even I saw it's version and I was able to import cv2 but I wonder why I'm not able to install cv2 in pycharm?
I tried but pycharm give me this error: ( Could not find a version that satisfies the requirement cv2 (from versions:
No matching distribution found for cv2)
and it also says "you are using pip version 10.0.1 however version 18.0 is available"
It's really ridiculous because I updated pip to version 18 but apparently pycharm doesn't understand ...

from opencv-python.

skvark avatar skvark commented on August 19, 2024

The name of this package is opencv-python, not cv2. Please read the installation instructions in the README: https://github.com/skvark/opencv-python#installation-and-usage

Ask your question at Stack Overflow. This is a issue tracker, not a Q&A forum.

from opencv-python.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.