pypa / installer

A low-level library for installing from a Python wheel distribution.
https://installer.readthedocs.io/
MIT License
123 stars 51 forks source link

Unable to install salt wheel #194

Closed mtelka closed 1 year ago

mtelka commented 1 year ago

installer version 0.7.0 is unable to install salt wheel:

$ wget https://files.pythonhosted.org/packages/source/s/salt/salt-3006.2.tar.gz
$ tar xf salt-3006.2.tar.gz
$ cd salt-3006.2
$ /usr/bin/python -m build --wheel --no-isolation
$ /usr/bin/python -m installer --destdir $(pwd)/installer ./dist/salt-3006.2-py3-none-any.whl
Traceback (most recent call last):
  File "/usr/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/usr/lib/python3.9/vendor-packages/installer/__main__.py", line 98, in <module>
    _main(sys.argv[1:], "python -m installer")
  File "/usr/lib/python3.9/vendor-packages/installer/__main__.py", line 94, in _main
    installer.install(source, destination, {})
  File "/usr/lib/python3.9/vendor-packages/installer/_core.py", line 109, in install
    record = destination.write_file(
  File "/usr/lib/python3.9/vendor-packages/installer/destinations.py", line 203, in write_file
    return self.write_to_fs(
  File "/usr/lib/python3.9/vendor-packages/installer/destinations.py", line 167, in write_to_fs
    raise FileExistsError(message)
FileExistsError: File already exists: /tmp/salt/salt-3006.2/installer/usr/bin/salt
$

Please note the pyproject_installer is able to install the wheel:

$ /usr/bin/python -m pyproject_installer install --destdir $(pwd)/pyproject_installer ./dist/salt-3006.2-py3-none-any.whl
INFO     : Installing wheel
INFO     : Wheel directory: /tmp/salt/salt-3006.2/dist
INFO     : Wheel filename: salt-3006.2-py3-none-any.whl
INFO     : Destination: /tmp/salt/salt-3006.2/pyproject_installer
INFO     : Wheel installation root: /tmp/salt/salt-3006.2/pyproject_installer/usr/lib/python3.9/site-packages
INFO     : Extracting wheel
INFO     : Generating entrypoints scripts
INFO     : Installing .data
INFO     : Wheel was installed
$
dimbleby commented 1 year ago

duplicate #170, #182 presumably. This project is intolerant of collisions.

you'll want to raise a bug against salt.