2016-01-17 8 views
8

Ich versuche, eine bestimmte Version von Django-cms zu installieren und damit pip install django-cms==3.0.5 auszuführen. Das gibt mir den Fehler No matching distribution found for django-mptt==0.5.2,==0.6,==0.6.1 (from django-cms==3.0.5). Und in der Tat, auf GitHub die setup.py Datei gibt die Anforderung django-mptt==0.5.2,==0.6,==0.6.1.Pip Requirement Specifiers: Rolle des Kommas

Die specification sagt, dass das Komma als ein logischer "und" Operator dient, aber offensichtlich keine Version 0.5.2, 0.6 UND 0.6.1 gleichzeitig sein kann und somit die Anforderung nicht übereinstimmt. Die Installation einer dieser Versionen über pip install django-mptt==0.5.2 funktioniert problemlos, aber es gibt immer noch den gleichen Fehler bei django-cms == 3.0.5.

Kann jemand dieses Licht beleuchten?

Antwort

5

Dies war ein Fehler in django-cms Version 3.0.5. Sie können das Problem hier sehen: https://github.com/divio/django-cms/issues/3704.

Sie können versuchen, Version 3.0.16 zu installieren, wenn Sie auf der Version 3.0 bleiben müssen. Wenn Sie WIRKLICH Version 3.0.5 benötigen, können Sie pip==1.5.6 installieren, und django-cms sollte noch richtig installieren.

Bearbeiten Ab Version 6.0 von pip können mehrere == Versionsspezifizierer für ein einzelnes Paket nicht mehr verwendet werden. Einer der Entwickler kommentiert Github:

Dies ist das neue erwartete Verhalten von PEP ist 440.

Das alte Verhalten von Setuptools verwirrend war und nicht tat, was die meisten Menschen erwartet, es zu tun. PEP 440 hat es vereinfacht, indem es die logische UND-Anweisung geändert hat.

Siehe https://github.com/pypa/pip/issues/2258.

+0

Ah, wer hätte das gedacht! Vielen Dank! :) –