Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make requirements actually required by default, fix OpenCV dependencies #180

Closed
Breakthrough opened this issue Aug 20, 2020 · 0 comments
Closed

Comments

@Breakthrough
Copy link
Owner

Breakthrough commented Aug 20, 2020

TL,DR: pip install scenedetect should just work. I propagated OpenCV as an extra on the requirements because at the time it wasn't available on Windows, but is now, so will make it be batteries included by default from now on. This might have unintended side effects, however, so what I'm thinking right now is to just go with pip install scenedetect[opencv] to simplify things (removing extras shouldn't break anything).

There is also a headless option I'm considering adding as an extra to make it better suited for non-GUI environments (e.g. pip install scenedetect[opencv-headless]). I don't think tqdm has any impact on that part, so I'll likely pull that in as an actual requirement and not have it as an extra.

Lastly, need to restrict the OpenCV version for Python 2.7 now since it's not supported for new versions now.


Right now, for a new installation, to make everything work, you have to type:

pip install scenedetect[opencv,progress_bar]

Based on the traffic statistics for #73, a lot of people are running pip install scenedetect and assuming it will download all dependencies (as they should). Thus I'd like to just get rid of those "features" and just pin PySceneDetect to everything in requirements.txt, since they're not actually features but hard requirements for most users. There is a significant amount of traffic on

The downside of this approach is that certain users using a manually installed version of the cv2 package might need to modify the setup script manually. I'm not sure if there is a way to actually achieve this goal outside of the use of the extra_requires() functionality, so perhaps I should just simplify the command to something like:

pip install scenedetect[opencv]

And drop progress_bar and just throw tqdm as a required package to simplify things. The one optional module is tqdm which I'm not sure if I should leave it as an extra or just make it a requirement to simplify things... Any opinions?

@Breakthrough Breakthrough added this to the v0.5.4 milestone Aug 20, 2020
@Breakthrough Breakthrough changed the title Make requirements actually required by default Make OpenCV required by default (what about tqdm?) Aug 20, 2020
@Breakthrough Breakthrough changed the title Make OpenCV required by default (what about tqdm?) Make requirements required by default Aug 20, 2020
@Breakthrough Breakthrough changed the title Make requirements required by default Make requirements actually required by default Aug 20, 2020
@Breakthrough Breakthrough changed the title Make requirements actually required by default Make requirements actually required by default, fix OpenCV dependencies Aug 22, 2020
Breakthrough added a commit that referenced this issue Aug 22, 2020
Breakthrough added a commit that referenced this issue Aug 22, 2020
Pin dependencies for all Python versions < 3.5 to the same opencv-python version.

Resolves #180.
@Breakthrough Breakthrough pinned this issue Sep 15, 2020
@Breakthrough Breakthrough unpinned this issue Jan 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant