Wenn ich laufe, pip freeze
sehe ich (unter anderem erwartete Pakete) pkg-resources==0.0.0
. Ich habe einige Posts gesehen, in denen dieses Paket erwähnt wurde (einschließlich dieses ), aber keine, in denen erklärt wurde, was es ist oder warum es in der Ausgabe von enthalten ist pip freeze
. Der Hauptgrund, den ich mich wundere, ist aus Neugier, aber es scheint auch in einigen Fällen zu brechen, wenn versucht wird, Pakete mit einer requirements.txt
Datei zu installieren, die mit pip freeze
der pkg-resources==0.0.0
Zeile generiert wurde (zum Beispiel, wenn Travis CI versucht, Abhängigkeiten durch zu installieren pip
und dies findet Linie).
Was ist pkg-resources
und ist es in Ordnung, diese Zeile zu entfernen requirements.txt
?
Aktualisieren:
Ich habe festgestellt, dass diese Zeile nur in der Ausgabe von zu existieren scheint, pip freeze
wenn ich in einem bin virtualenv
. Ich bin mir immer noch nicht sicher, was es ist oder was es tut, aber ich werde weiter untersuchen, in dem Wissen, dass es wahrscheinlich damit zusammenhängt virtualenv
.
quelle
pip
? Ich denke, dies könnte etwas gewesen sein, das sie in einer alten Veröffentlichung verpasst8.1.2
haben, da ich keinen Eintrag dafür habepkg-resources
. (Was es nicht sollte, da ich mir ziemlich sicher bin,pkg-resources
kommt mitsetuptools
).virtualenv
, und wenn ich nicht in einer virtuellen Umgebung bin, sehe ich es auch nicht. Dies erklärt immer noch nicht, was es ist, ist aber zumindest ein Hinweis, den ich untersuchen kann.Antworten:
Laut https://github.com/pypa/pip/issues/4022 ist dies ein Fehler, der darauf zurückzuführen ist, dass Ubuntu Pip falsche Metadaten zur Verfügung stellt. Nein, es scheint keinen guten Grund für dieses Verhalten zu geben. Ich habe einen Follow-up-Fehler bei Ubuntu gemeldet. https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463
Um die vorherige Antwort zu sichern, sollte es sicher sein, diese Zeile aus Ihrer Anforderung.txt zu entfernen. Hier ist ein Beispiel für die Zeilengruppe "Datei erstellen", in der Ihre Paketliste sicher eingefroren wird (fügen Sie Ihr Makefile ein und führen Sie es aus
make freeze
):quelle
AttributeError: module 'pkg_resources' has no attribute 'iter_entry_points'
, also denke ich, dass es am besten ist, es einfach zu entfernenrequirements.txt
Für den Teil Ihrer Frage „ ist es in Ordnung , diese Linie zu entfernen? “:
Ich habe das gleiche Problem hier auf einem Ubuntu 16.04 mit genau dieser Linie in den Anforderungen zu entwickeln. Bei der Bereitstellung auf einem Debian 8.5
"pip install -r requirements.txt"
beschwert sich Pip, dass pkg-resources "nicht gefunden" wird, aber ein globales Paket "python-pkg-resources" installiert ist, sodass die Abhängigkeit erfüllt sein sollte. Gleiches gilt für Ubuntu: Das Paket existiert auch dort.Wie hier angegeben , scheint es sich um ein "implizit installiertes Paket" zu handeln.
Also: Wenn Sie auf einem Debian / Ubuntu sind, auf dem Python-pkg-Ressourcen installiert sind, sollte es sicher sein, diese Zeile zu entfernen . Ich habe es getan und alles läuft gut. Da ich jedoch kein Experte in diesem Bereich bin, sollten Sie berücksichtigen, dass dies bei der Bereitstellung auf einem anderen Computer zu Komplikationen führen kann.
quelle
virtualenv
?fand diese Antwort in diesem Link: https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463
von: Louis Bouchard (louis) schrieb am 16.11.2019:
Es hat bei mir funktioniert. Aber ich bin kein Experte. Wenn jemand es besser verstehen würde, wäre es großartig, wenn er es erklären würde.
Hallo,
Für das, was es wert ist, kommt das Problem von der debianisierten Version von virtualenv, die eine entbündelte Version von pkg_resource verwendet, die zur Erstellungszeit in virtualenv hinzugefügt wird:
Die Verwendung der von pip installierten Version von virtualenv kann eine praktikable Problemumgehung sein:
hth, ... Louis
quelle
Unter Ubuntu können Sie dies beheben, indem Sie das Ubuntu-
virtualenv
Paket entfernen und eine neue Version installieren vonpip
:quelle