pydoit / doit

CLI task management & automation tool
http://pydoit.org
MIT License
1.87k stars 175 forks source link

Remove pip import and version check from setup.py to make doit install with setuptools 50.0 #369

Closed Kwpolska closed 4 years ago

Kwpolska commented 4 years ago

Changes to how setuptools 50 works means that installing doit crashes with a cryptic KeyError (most likely caused by setuptools and pip’s monkeypatching of distutils). This check is not really necessary (most people have a newer pip these days).


Error:

$ ./setup.py
/tmp/venv/lib64/python3.8/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils.
  warnings.warn("Setuptools is replacing distutils.")
Traceback (most recent call last):
  File "./setup.py", line 44, in <module>
    setup(name = 'doit',
  File "/tmp/venv/lib64/python3.8/site-packages/setuptools/__init__.py", line 152, in setup
    _install_setup_requires(attrs)
  File "/tmp/venv/lib64/python3.8/site-packages/setuptools/__init__.py", line 145, in _install_setup_requires
    dist.parse_config_files(ignore_option_errors=True)
  File "/tmp/venv/lib64/python3.8/site-packages/setuptools/dist.py", line 665, in parse_config_files
    self._parse_config_files(filenames=filenames)
  File "/tmp/venv/lib64/python3.8/site-packages/setuptools/dist.py", line 572, in _parse_config_files
    filenames = self.find_config_files()
  File "/tmp/venv/lib64/python3.8/site-packages/setuptools/_distutils/dist.py", line 353, in find_config_files
    sys_dir = os.path.dirname(sys.modules['distutils'].__file__)
KeyError: 'distutils'

Please consider making a new release to PyPI, since this makes it hard to install doit (and its dependents, like Nikola). Please also consider adding wheels to the PyPI release to simplify installation (./setup.py sdist bdist_wheel to build, then upload both files).

schettino72 commented 4 years ago

thanks. also added a wheel file as you suggested.