Opened 5 years ago

Closed 3 years ago

#3282 closed bug (Fixed)

Does not work with pillow-simd

Reported by: FichteFoll Owned by:
Priority: minor Milestone: 2.0.4
Component: Packaging Version: 2.0.3
Keywords: Cc:

Description

When using https://github.com/uploadcare/pillow-simd instead of pillow, deluge refuses to start. pillow-simd is a drop-in replacement and should be honored if it is installed on the system instead of the normal pillow.

♦ deluge
Traceback (most recent call last):
  File "/usr/bin/deluge", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3241, in <module>
    @_call_aside
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3225, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3254, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 583, in _build_master
    ws.require(__requires__)
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 900, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 786, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pillow' distribution was not found and is required by deluge

Change History (2)

comment:1 Changed 5 years ago by Cas

  • Component changed from Unknown to Packaging
  • Milestone changed from needs verified to 2.0.4

Deluge specifies pillow in setup.py install_requires and uses entry_points so looks up the requirements but because pillow-simd cannot be installed at the same time as pillow you see the error.

Although it is optional, I am hesitant to remove it from setup requires as I would then need to create an extras section with documentation on installing this.

There are workarounds but I feel downstream developers should not have to deal with this. However I will have a bit more of think about what to do with this.

In the meantime you could patch setup.py before install or requires.txt after install.

Refs:

comment:2 Changed 3 years ago by Cas

  • Resolution set to Fixed
  • Status changed from new to closed

Fixed by moving pillow to extra_requires: [8fb25f71f30733]

Note: See TracTickets for help on using tickets.