Skip to content

Missing dependency on setuptools #1086

@mathrick

Description

@mathrick

The slash package does not properly declare dependency on setuptools, even though it requires that to run. This means it will reliably fail if installed into an empty virtualenv, which is how things should generally be installed for development. Repro:

$ python -m venv /tmp/slash
$ . /tmp/slash/bin/activate
$ pip install slash
[...]
Installing collected packages: wcwidth, sentinels, raven, pure-eval, ptyprocess, brotli, urllib3, typing-extensions, types-python-dateutil, traitlets, six, pyparsing, pygments, py, prompt_toolkit, pexpect, parso, ordered-set, munch, MarkupSafe, logbook, libtmux, idna, greenlet, executing, decorator, colorama, charset-normalizer, certifi, attrs, atomicwrites, asttokens, vintage, stack_data, sqlalchemy, requests, python-dateutil, matplotlib-inline, jinja2, jedi, ipython-pygments-lexers, emport, dessert, confetti, ipython, gossip, arrow, slash
Successfully installed MarkupSafe-3.0.2 arrow-1.3.0 asttokens-3.0.0 atomicwrites-1.4.1 attrs-25.3.0 brotli-1.1.0 certifi-2025.4.26 charset-normalizer-3.4.1 colorama-0.4.6 confetti-2.5.3 decorator-5.2.1 dessert-1.4.7 emport-1.3.1 executing-2.2.0 gossip-2.4.0 greenlet-3.2.1 idna-3.10 ipython-9.2.0 ipython-pygments-lexers-1.1.1 jedi-0.19.2 jinja2-3.1.6 libtmux-0.46.1 logbook-1.8.1 matplotlib-inline-0.1.7 munch-4.0.0 ordered-set-4.1.0 parso-0.8.4 pexpect-4.9.0 prompt_toolkit-3.0.51 ptyprocess-0.7.0 pure-eval-0.2.3 py-1.11.0 pygments-2.19.1 pyparsing-3.2.3 python-dateutil-2.9.0.post0 raven-6.10.0 requests-2.32.3 sentinels-1.0.0 six-1.17.0 slash-1.15.0 sqlalchemy-2.0.40 stack_data-0.6.3 traitlets-5.14.3 types-python-dateutil-2.9.0.20241206 typing-extensions-4.13.2 urllib3-2.4.0 vintage-0.4.1 wcwidth-0.2.13

$ slash run
Traceback (most recent call last):
  File "/tmp/slash/bin/slash", line 5, in <module>
    from slash.frontend.main import main_entry_point
  File "/tmp/slash/lib/python3.12/site-packages/slash/__init__.py", line 2, in <module>
    from .__version__ import __version__
  File "/tmp/slash/lib/python3.12/site-packages/slash/__version__.py", line 1, in <module>
    import pkg_resources
ModuleNotFoundError: No module named 'pkg_resources'

$ pip install setuptools
Collecting setuptools
  Using cached setuptools-80.0.0-py3-none-any.whl.metadata (6.5 kB)
Using cached setuptools-80.0.0-py3-none-any.whl (1.2 MB)
Installing collected packages: setuptools
Successfully installed setuptools-80.0.0

$ slash run
ERROR: No tests specified

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions