python-fire icon indicating copy to clipboard operation
python-fire copied to clipboard

Declare `wheel` dependency in `pyproject.toml` according to PEP 518

Open astrojuanlu opened this issue 4 years ago • 1 comments

Trying to install fire on a fresh environment ends produces this error:

Building wheels for collected packages: fire
  Building wheel for fire (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /tmp/ie-titanic-utils/.venv/bin/python3.9 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-6ftqurwi/fire/setup.py'"'"'; __file__='"'"'/tmp/pip-install-6ftqurwi/fire/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-08a6120v
       cwd: /tmp/pip-install-6ftqurwi/fire/
  Complete output (6 lines):
  usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: setup.py --help [cmd1 cmd2 ...]
     or: setup.py --help-commands
     or: setup.py cmd --help
  
  error: invalid command 'bdist_wheel'
  ----------------------------------------
  ERROR: Failed building wheel for fire
  Running setup.py clean for fire

After that, fire gets installed anyway.

This error doesn't appear if the wheel package is preinstalled in the environment. However, the proper modern way of specifying a build-time dependency is to include a pyproject.toml. Given that fire uses setuptools, as the user guide says here https://setuptools.readthedocs.io/en/latest/userguide/quickstart.html#basic-use, it should contain this:

[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"

astrojuanlu avatar Jun 11 '21 16:06 astrojuanlu