N-Coder / studip-fuse

Python FUSE drive for courses and files available through the Stud.IP University Access Portal
GNU General Public License v3.0
20 stars 2 forks source link

Can't install on ArchLinux: No matching distribution found for setuptools-meta #20

Open ein-stein-chen opened 4 years ago

ein-stein-chen commented 4 years ago

Full error below. Manually installing setuptools-meta with pip install --user git+https://github.com/noirbizarre/setuptools-meta.git allow the installation.

$ pip install --user git+https://github.com/N-Coder/studip-fuse
Collecting git+https://github.com/N-Coder/studip-fuse
  Cloning https://github.com/N-Coder/studip-fuse to /tmp/pip-req-build-06kzvvj_
  Running command git clone -q https://github.com/N-Coder/studip-fuse /tmp/pip-req-build-06kzvvj_
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-06kzvvj_/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-06kzvvj_/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-req-build-06kzvvj_/pip-egg-info
         cwd: /tmp/pip-req-build-06kzvvj_/
    Complete output (33 lines):
    WARNING: The wheel package is not available.
    ERROR: Could not find a version that satisfies the requirement setuptools-meta (from versions: none)
    ERROR: No matching distribution found for setuptools-meta
    Traceback (most recent call last):
      File "/usr/lib/python3.8/site-packages/setuptools/installer.py", line 128, in fetch_build_egg
        subprocess.check_call(cmd)
      File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['/usr/bin/python', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmpzn_e62n9', '--quiet', '--find-links', 'git+https://github.com/noirbizarre/setuptools-meta.git#egg=setuptools-meta', 'setuptools-meta']' returned non-zero exit status 1.

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-req-build-06kzvvj_/setup.py", line 100, in <module>
        setup(
      File "/usr/lib/python3.8/site-packages/setuptools/__init__.py", line 143, in setup
        _install_setup_requires(attrs)
      File "/usr/lib/python3.8/site-packages/setuptools/__init__.py", line 138, in _install_setup_requires
        dist.fetch_build_eggs(dist.setup_requires)
      File "/usr/lib/python3.8/site-packages/setuptools/dist.py", line 718, in fetch_build_eggs
        resolved_dists = pkg_resources.working_set.resolve(
      File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 781, in resolve
        dist = best[req.key] = env.best_match(
      File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 1066, in best_match
        return self.obtain(req, installer)
      File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 1078, in obtain
        return installer(requirement)
      File "/usr/lib/python3.8/site-packages/setuptools/dist.py", line 777, in fetch_build_egg
        return fetch_build_egg(self, req)
      File "/usr/lib/python3.8/site-packages/setuptools/installer.py", line 130, in fetch_build_egg
        raise DistutilsError(str(e))
    distutils.errors.DistutilsError: Command '['/usr/bin/python', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmpzn_e62n9', '--quiet', '--find-links', 'git+https://github.com/noirbizarre/setuptools-meta.git#egg=setuptools-meta', 'setuptools-meta']' returned non-zero exit status 1.
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
NK308 commented 4 years ago

I had the same error, but in addition to installing setuptools-meta from github, I also had to remove all occurrences of that package from the setup.py, because python was still looking for setuptools-meta at pypi during the installation.

N-Coder commented 4 years ago

Packaging python code can unfortunately be pretty annoying. :/ An easy solution to this might be in https://github.com/noirbizarre/setuptools-meta/issues/1.

As an alternative, one could think about migrating the setup.py definitions to the more modern pyproject.toml infrastructure from PEP 518, that also allows properly specifying requirements to the setup environment. But I guess that this is again not compatible with setuptools-meta, which would then require changes to that library -- or our usage of it, which is only for providing debugging information about the somewhat broken packaging and installation, anyways.