biocommons.seqrepo icon indicating copy to clipboard operation
biocommons.seqrepo copied to clipboard

ModuleNotFoundError (pkg_resources) on import in 3.12

Open jsstevenson opened this issue 10 months ago • 0 comments

Describe the bug Same issue as https://github.com/biocommons/eutils/issues/173: Importing raises a ModuleNotFoundError:

>>> import biocommons.seqrepo
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/jss009/code/mavemap/tmp-venv/lib/python3.12/site-packages/biocommons/seqrepo/__init__.py", line 5, in <module>
    from .seqrepo import SeqRepo  # noqa: F401
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/jss009/code/mavemap/tmp-venv/lib/python3.12/site-packages/biocommons/seqrepo/seqrepo.py", line 11, in <module>
    from .fastadir import FastaDir
  File "/Users/jss009/code/mavemap/tmp-venv/lib/python3.12/site-packages/biocommons/seqrepo/fastadir/__init__.py", line 1, in <module>
    from .fastadir import FastaDir
  File "/Users/jss009/code/mavemap/tmp-venv/lib/python3.12/site-packages/biocommons/seqrepo/fastadir/fastadir.py", line 11, in <module>
    import yoyo
  File "/Users/jss009/code/mavemap/tmp-venv/lib/python3.12/site-packages/yoyo/__init__.py", line 27, in <module>
    from yoyo.connections import get_backend
  File "/Users/jss009/code/mavemap/tmp-venv/lib/python3.12/site-packages/yoyo/connections.py", line 23, in <module>
    from yoyo.backends import get_backend_class
  File "/Users/jss009/code/mavemap/tmp-venv/lib/python3.12/site-packages/yoyo/backends/__init__.py", line 1, in <module>
    from yoyo.backends.base import DatabaseBackend
  File "/Users/jss009/code/mavemap/tmp-venv/lib/python3.12/site-packages/yoyo/backends/base.py", line 32, in <module>
    from yoyo import internalmigrations
  File "/Users/jss009/code/mavemap/tmp-venv/lib/python3.12/site-packages/yoyo/internalmigrations/__init__.py", line 8, in <module>
    from . import v2
  File "/Users/jss009/code/mavemap/tmp-venv/lib/python3.12/site-packages/yoyo/internalmigrations/v2.py", line 7, in <module>
    from yoyo.migrations import get_migration_hash
  File "/Users/jss009/code/mavemap/tmp-venv/lib/python3.12/site-packages/yoyo/migrations.py", line 34, in <module>
    import pkg_resources
ModuleNotFoundError: No module named 'pkg_resources'

To Reproduce Import biocommons.seqrepo or anything contained therein

Additional context If memory serves, importlib.metadata is the drop-in fix, but it's also worth asking if this version check is needed.

Users can get around this for now by also pinning a newer version of setuptools (eg 68) in addition to biocommons.seqrepo in their project dependencies

jsstevenson avatar Apr 16 '24 20:04 jsstevenson