LeoHsiao1 / pyexiv2

Read and write image metadata, including EXIF, IPTC, XMP, ICC Profile.
GNU General Public License v3.0
196 stars 40 forks source link

Does it support Python 3.10+? #139

Open jsh9 opened 3 months ago

jsh9 commented 3 months ago

Hi, I was trying this package for the first time, and I ran into this issue:

RuntimeError: pyexiv2 only supports these Python versions: ['3.5', '3.6', 
'3.7', '3.8', '3.9'] . But your version is 3.1 .

My Python version is 3.11. Apparently there's also a bug in parsing my current Python version.

My pyexiv2 version is 2.5.0

Thanks!

LeoHsiao1 commented 3 months ago

Yes, this code used to have a problem recognizing python 3.10 as python 3.1. But in 2021 I have fixed this bug. The question is why are you installing an old version of pyexiv2. May I ask how you installed pyexiv2? If it was pip install pyexiv2, what version of pyexiv2 does it show? May I ask the version of your computer's operating system?

jsh9 commented 3 months ago

I used pip install pyexiv2 and 2.5.0 was installed.

If I tried to force the version by pip install pyexiv2==2.12.0, I encountered this error:

ERROR: Ignored the following yanked versions: 2.4.0, 2.6.0
ERROR: Could not find a version that satisfies the requirement pyexiv2==2.12.0 (from versions: 1.1.0, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.3.0, 2.0.0, 2.1.0, 2.2.0, 2.3.0, 2.3.1, 2.3.2, 2.4.1, 2.5.0)
ERROR: No matching distribution found for pyexiv2==2.12.0

It's probably because the newer versions don't have corresponding distributions for Python 3.11. (I'm on Python 3.11, and I'm on macOS.)

LeoHsiao1 commented 3 months ago

I'm guessing your CPU is Apple M1, which uses the ARM architecture. Currently, if you use ARM platform, you need to compile exiv2 and pyexiv2 manually, which is troublesome. (related issue) The newer version of pyexiv2 declares a defect for arm, so when you execute pip install pyexiv2==2.12.0 you will get an error. The older versions of pyexiv2 don't strictly declare compatibility, so you can install pyexiv2==2.5.0. But even after installing it, it can't be imported as a Python library.

LeoHsiao1 commented 3 months ago

To avoid misleading new users, I will hide older versions of pyexiv2 below 2.5.0 on pypi.org.