nicfit / eyeD3

eyeD3 is a Python module and command line program for processing ID3 tags. Information about mp3 files (i.e bit rate, sample frequency, play time, etc.) is also provided. The formats supported are ID3v1 (1.0/1.1) and ID3v2 (2.3/2.4).
http://eyed3.nicfit.net/
GNU General Public License v3.0
532 stars 58 forks source link

eyeD3 complains about newer coverage version #629

Open meator opened 2 months ago

meator commented 2 months ago

Every time I try to use eyeD3 on my computer, I get greeted by the following error:

eyeD3 --about
eyed3.plugins:ERROR: Bad plugin ('lastfm.py', '/usr/lib/python3.12/site-packages/eyed3/plugins')
Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/pkg_resources/__init__.py", line 600, in _build_master
    ws.require(__requires__)
  File "/usr/lib/python3.12/site-packages/pkg_resources/__init__.py", line 937, in require
    needed = self.resolve(parse_requirements(requirements))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/pkg_resources/__init__.py", line 798, in resolve
    dist = self._resolve_dist(
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/pkg_resources/__init__.py", line 844, in _resolve_dist
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (coverage 7.4.4 (/usr/lib/python3.12/site-packages), Requirement.parse('coverage[toml]==5.*,>=5.3.1'), {'eyeD3'})

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/eyed3/plugins/__init__.py", line 56, in load
    mod = __import__(mod_name, globals=globals(), locals=locals())
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/eyed3/plugins/lastfm.py", line 1, in <module>
    from pylast import SIZE_EXTRA_LARGE, SIZE_LARGE, SIZE_MEDIUM, SIZE_MEGA, SIZE_SMALL
  File "/usr/lib/python3.12/site-packages/pylast/__init__.py", line 35, in <module>
    import pkg_resources
  File "/usr/lib/python3.12/site-packages/pkg_resources/__init__.py", line 3291, in <module>
    @_call_aside
     ^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/pkg_resources/__init__.py", line 3266, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3.12/site-packages/pkg_resources/__init__.py", line 3304, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/pkg_resources/__init__.py", line 602, in _build_master
    return cls._build_from_requirements(__requires__)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/pkg_resources/__init__.py", line 615, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/pkg_resources/__init__.py", line 798, in resolve
    dist = self._resolve_dist(
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/pkg_resources/__init__.py", line 839, in _resolve_dist
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'coverage[toml]==5.*,>=5.3.1' distribution was not found and is required by eyeD3
0.9.6 True Blue

eyeD3 0.9.6 © Copyright 2002-2020 Travis Shirk
This program comes with ABSOLUTELY NO WARRANTY! See LICENSE for details.
Run with --help/-h for usage information or read the docs at

My distro (Void Linux) packages python3-coverage version 7.4.4, which eyeD3 doesn't like.

Here is the Void Linux issue: https://github.com/void-linux/void-packages/issues/45579

A new release of eyeD3 should solve this problem. The last release was made three years ago. Are there any plans to make a new one?

meator commented 2 months ago

It looks like a tag for v0.9.7 was made, but a GitHub release wasn't. Related to https://github.com/nicfit/eyeD3/issues/605 I will probably switch to the tagged release to fix this problem.