Django-haystack: DistutilsError: Es konnte keine geeignete Distribution für Requirement.parse('setuptools-scm') gefunden werden

Erstellt am 1. Dez. 2017  ·  6Kommentare  ·  Quelle: django-haystack/django-haystack

Ich erhalte den folgenden setuptools_scm -Fehler, wenn ich versuche, über die neueste Pip-Version in einer virtuellen Umgebung zu installieren. Wie Sie im folgenden Code sehen können, scheint setuptools_scm installiert zu sein. Ich versuche herauszufinden, warum es sich nicht mit Ihrer Bibliothek verbindet. Wenn Sie irgendwelche Ideen haben, lassen Sie es mich bitte wissen.

(himmel.latimes.com)datadesk<strong i="7">@himmel</strong>:/apps/himmel.latimes.com$ pip freeze | grep setuptools-scm
setuptools-scm==1.15.6
(himmel.latimes.com)datadesk<strong i="8">@himmel</strong>:/apps/himmel.latimes.com$ python
Python 2.7.3 (default, Aug  1 2012, 05:14:39) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import setuptools_scm
>>> exit()
(himmel.latimes.com)datadesk<strong i="9">@himmel</strong>:/apps/himmel.latimes.com$ pip install django-haystack
Collecting django-haystack
  Using cached django-haystack-2.6.1.tar.gz
    Complete output from command python setup.py egg_info:
    Couldn't find index page for 'setuptools_scm' (maybe misspelled?)
    No local packages or download links found for setuptools-scm
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-do137B/django-haystack/setup.py", line 68, in <module>
        setup_requires=['setuptools_scm'],
      File "/usr/lib/python2.7/distutils/core.py", line 112, in setup
        _setup_distribution = dist = klass(attrs)
      File "/apps/himmel.latimes.com/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/dist.py", line 221, in __init__
        self.fetch_build_eggs(attrs.pop('setup_requires'))
      File "/apps/himmel.latimes.com/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/dist.py", line 245, in fetch_build_eggs
        parse_requirements(requires), installer=self.fetch_build_egg
      File "/apps/himmel.latimes.com/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 576, in resolve
        dist = best[req.key] = env.best_match(req, self, installer)
      File "/apps/himmel.latimes.com/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 821, in best_match
        return self.obtain(req, installer) # try and download/install
      File "/apps/himmel.latimes.com/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 833, in obtain
        return installer(requirement)
      File "/apps/himmel.latimes.com/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/dist.py", line 294, in fetch_build_egg
        return cmd.easy_install(req)
      File "/apps/himmel.latimes.com/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/command/easy_install.py", line 583, in easy_install
        raise DistutilsError(msg)
    distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('setuptools-scm')

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-do137B/django-haystack/

Hilfreichster Kommentar

Ein interessanter Kommentar zu erwähnen: https://github.com/pypa/setuptools/issues/2385#issuecomment -696147999

Ein Teil des Problems hier ist, dass easy_install veraltet ist, aber in einigen Fällen setup_requires-Abhängigkeiten immer noch darauf angewiesen sind.
In späteren Versionen von Setuptools (42 und höher) werden setup_requires-Abhängigkeiten jedoch mit pip (falls verfügbar) geladen und durchlaufen alle benutzerdefinierten Indizes.
Die Frage ist also: Warum wird pip nicht zum Installieren der setup_requires-Abhängigkeiten verwendet? Welche Version von Setuptools hast du installiert?

Ich denke, eine Lösung dafür ist das Upgrade von Setuptools.

Alle 6 Kommentare

pip nimmt es nicht auf, aber Sie können das Paket manuell installieren

pip install setuptools-scm

Mit welcher Pip-Version sehen die Leute das? Es scheint nicht ungewöhnlich zu sein, aber es gab Hinweise darauf, dass es an einer inzwischen ziemlich alten Version von pip (https://github.com/pypa/pypi-legacy/issues/322#issuecomment-229131838) lag, also habe ich Ich frage mich, ob ein Update das Problem auch beheben würde.

Hey @acdha , danke für die Antwort! Ich bin auf Pip 18.1 mit Python 3.7 in einem Pipvenv

Dies passiert, wenn Sie ein nicht standardmäßiges PyPI-Repo verwenden. pip wird es verwenden, aber setup_requires wird von setuptools gehandhabt, was die pip-Einstellungen nicht respektiert. Stattdessen werden Sie zu pypi.org umgeleitet, das in unserer Umgebung nicht zugänglich ist. Damit kämpfe ich jetzt. Der Vorschlag, eine distutils.cfg -Datei zu erstellen, funktioniert bei mir nicht.

Wird hier überhaupt setuptools-scm benötigt? Ich kann nichts in setup.cfg sehen, das es erfordert. #1603 scheint zu glauben, dass dies nicht der Fall ist.

Ein interessanter Kommentar zu erwähnen: https://github.com/pypa/setuptools/issues/2385#issuecomment -696147999

Ein Teil des Problems hier ist, dass easy_install veraltet ist, aber in einigen Fällen setup_requires-Abhängigkeiten immer noch darauf angewiesen sind.
In späteren Versionen von Setuptools (42 und höher) werden setup_requires-Abhängigkeiten jedoch mit pip (falls verfügbar) geladen und durchlaufen alle benutzerdefinierten Indizes.
Die Frage ist also: Warum wird pip nicht zum Installieren der setup_requires-Abhängigkeiten verwendet? Welche Version von Setuptools hast du installiert?

Ich denke, eine Lösung dafür ist das Upgrade von Setuptools.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

pascallando picture pascallando  ·  4Kommentare

mdf-github picture mdf-github  ·  8Kommentare

SteveByerly picture SteveByerly  ·  8Kommentare

isaacpeka picture isaacpeka  ·  3Kommentare

matclayton picture matclayton  ·  7Kommentare