-
-
Notifications
You must be signed in to change notification settings - Fork 91
Description
Hello,
I manage a project using poetry and since importlib-metadata 6.5.1 my install has been failing with the following error. I'm trying to install an updated version of ansible while a current one is already installed. I think the issue is that pathlib is having trouble finding a relative path between the ansible binary /usr/local/bin/ansible and site-packages.
ansible [core 2.13.9]
config file = None
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.8/site-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/local/bin/ansible
python version = 3.8.16 (default, Feb 11 2023, 02:53:15) [GCC 10.2.1 20210110]
jinja version = 3.1.2
libyaml = True
---
00:40:59 #12 42.71 ValueError
00:40:59 #12 42.71
00:40:59 #12 42.71 '/usr/local/bin/ansible' does not start with '/usr/local/lib/python3.8/site-packages'
00:40:59 #12 42.71
00:40:59 #12 42.71 at /usr/lib64/python3.8/pathlib.py:908 in relative_to
00:40:59 #12 42.83 904│ n = len(to_abs_parts)
00:40:59 #12 42.83 905│ cf = self._flavour.casefold_parts
00:40:59 #12 42.83 906│ if (root or drv) if n == 0 else cf(abs_parts[:n]) != cf(to_abs_parts):
00:40:59 #12 42.83 907│ formatted = self._format_parsed_parts(to_drv, to_root, to_parts)
00:40:59 #12 42.83 → 908│ raise ValueError("{!r} does not start with {!r}"
00:40:59 #12 42.83 909│ .format(str(self), str(formatted)))
00:40:59 #12 42.83 910│ return self._from_parsed_parts('', root if n == 1 else '',
00:40:59 #12 42.83 911│ abs_parts[n:])
00:40:59 #12 42.83 912│
This error used to be caught by a way to broad broad contextlib.suppress(Exception) suppression which @jaraco's recent PR removed. I'm not that familiar with pythons package/importing mechanisms but could we add back a specific suppress(ValueError) to _read_files_egginfo_installed? We could also completely avoid the error by manually loop through and checking the path before finding its relative. I'm happy to open a PR with either change