samuelyeewl / specmatch-emp

Empirical SpecMatch
9 stars 8 forks source link

v34.0.2 of setuptools breaks installation #28

Open mikelum opened 7 years ago

mikelum commented 7 years ago

Dunno if you have a way to force using an older version of setuptools when installing, but the current version is broken. Here's what happens when you do a clean install of specmatch-emp:


    import setuptools

  File "/tmp/tmpNSxLIW/setuptools-34.0.2/setuptools/__init__.py", line 12, in <module>

    import setuptools.version

  File "/tmp/tmpNSxLIW/setuptools-34.0.2/setuptools/version.py", line 1, in <module>

    import pkg_resources

  File "/tmp/tmpNSxLIW/setuptools-34.0.2/pkg_resources/__init__.py", line 70, in <module>

    import packaging.version

ImportError: No module named packaging.version

...
  File "setup.py", line 2, in <module>

    ez_setup.use_setuptools()

  File "/home/mikelum/Dropbox/CodeCloud/specmatch-emp/ez_setup.py", line 178, in use_setuptools

    return _do_download(version, download_base, to_dir, download_delay)

  File "/home/mikelum/Dropbox/CodeCloud/specmatch-emp/ez_setup.py", line 129, in _do_download

    _build_egg(egg, archive, to_dir)

  File "/home/mikelum/Dropbox/CodeCloud/specmatch-emp/ez_setup.py", line 75, in _build_egg

    raise IOError('Could not build the egg.')

IOError: Could not build the egg.
mikelum commented 7 years ago

Here's the scoop: Setuptools has moved to a more standard install, using pip I believe, and can no longer be self-installed. To fix this, specmatch-emp needs to either assume the user has installed setuptools on their own, or not attempt to install the latest version of setuptools. For the latter, the following changes need to be made to ez_setup.py: (BTW: I seriously HATE Github's markup editor!) Lines 38-39:

# LATEST = object()
# 33.1.1 is the last version that supports setuptools self upgrade/installation.
DEFAULT_VERSION = "33.1.1"

Lines 351-356:

    """
    Resolve LATEST version
    Note: Anything after v33.1.1 cannot be self-installed, so we can no longer
    use the "Latest" version"
    """
#    if version is not LATEST:
    return version