firatkiral / pypeek

Peek screen recorder and screenshot with annotations
GNU General Public License v3.0
219 stars 8 forks source link

Versioning Too Strict (doesn't work with python 3.12) #18

Closed metal450 closed 10 months ago

metal450 commented 10 months ago

The installation instructions say it works with Python 3.10 or later. However, Python 3.12 gives:

ERROR: Cannot install pypeek==2.7.10, pypeek==2.7.11, pypeek==2.7.12, pypeek==2.7.13, pypeek==2.7.14, pypeek==2.8.0, pypeek==2.8.2, pypeek==2.8.5, pypeek==2.8.6, pypeek==2.8.7, pypeek==2.8.8, pypeek==2.8.9, pypeek==2.9.0, pypeek==2.9.1, pypeek==2.9.2, pypeek==2.9.3, pypeek==2.9.4, pypeek==2.9.5, pypeek==2.9.6 and pypeek==2.9.7 because these package versions have conflicting dependencies.

The conflict is caused by:
    pypeek 2.9.7 depends on pyside6~=6.4.0
    pypeek 2.9.6 depends on pyside6~=6.4.0
    pypeek 2.9.5 depends on pyside6~=6.4.0
    pypeek 2.9.4 depends on pyside6~=6.4.0
    pypeek 2.9.3 depends on pyside6~=6.4.0
    pypeek 2.9.2 depends on pyside6~=6.4.0
    pypeek 2.9.1 depends on pyside6~=6.4.0
    pypeek 2.9.0 depends on pyside6~=6.4.0
    pypeek 2.8.9 depends on pyside6~=6.4.0
    pypeek 2.8.8 depends on pyside6~=6.4.0
    pypeek 2.8.7 depends on pyside6~=6.4.0
    pypeek 2.8.6 depends on pyside6~=6.4.0
    pypeek 2.8.5 depends on pyside6~=6.4.0
    pypeek 2.8.2 depends on pyside6~=6.4.0
    pypeek 2.8.0 depends on pyside6~=6.4.0
    pypeek 2.7.14 depends on pyside6~=6.4.0
    pypeek 2.7.13 depends on pyside6~=6.4.0
    pypeek 2.7.12 depends on pyside6~=6.4.0
    pypeek 2.7.11 depends on pyside6~=6.4.0
    pypeek 2.7.10 depends on pyside6~=6.4.0

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

The current version of pyside6 is 6.6.0. If I try to manually pip install pyside6==6.4.0, I get

ERROR: Ignored the following versions that require a different python version: 6.3.0 Requires-Python <3.11,>=3.6; 6.3.1 Requires-Python <3.11,>=3.6; 6.3.2 Requires-Python <3.11,>=3.6; 6.4.0 Requires-Python <3.11,>=3.6; 6.4.0.1 Requires-Python <3.12,>=3.7; 6.4.1 Requires-Python <3.12,>=3.7; 6.4.2 Requires-Python <3.12,>=3.7; 6.4.3 Requires-Python <3.12,>=3.7; 6.5.0 Requires-Python <3.12,>=3.7; 6.5.1 Requires-Python <3.12,>=3.7; 6.5.1.1 Requires-Python <3.12,>=3.7; 6.5.2 Requires-Python <3.12,>=3.7; 6.5.3 Requires-Python <3.12,>=3.7
ERROR: Could not find a version that satisfies the requirement pyside6==6.4.0 (from versions: 6.6.0)
ERROR: No matching distribution found for pyside6==6.4.0

So it seems like pypeek will only work with exactly Python 3.10 (and not any other version).

firatkiral commented 10 months ago

pyside6 6.4.0 was removed from python 3.12 and pyside6 6.6.0 has breaking changes. So pypeek won't work on 3.12 out of the box and needs to be upgraded by hand. I'll look into that.

metal450 commented 10 months ago

Gotcha. Would be good to update the install requirements though, which currently say "3.10 or later", to explicitly state that only certain versions will work.

firatkiral commented 10 months ago

fixed