Umfeld
CircleCI mit Conda, zB https://circleci.com/gh/peterjc/thapbi-pict/1073
pip install --upgrade pip setuptools
)Ich habe nur geringfügige Änderungen an meinem Code vorgenommen, aber heute sind die CircleCI-Builds während der Build-/Installationsphase meines Python-Tools kaputt gegangen - mehrere Zweige betroffen. Das Timing passt zur Veröffentlichung von pip 19.3 auf PyPI.
Beschreibung
Es scheint, dass eine kürzlich veröffentlichte Version von pip einige interne Dateien verschoben hat, meine Vermutung ist #6830.
Erwartetes Verhalten
So reproduzieren Sie
Vollständige Ausgabe auf https://circleci.com/gh/peterjc/thapbi-pict/1073, die ausgeführt wird https://github.com/peterjc/thapbi-pict/blob/9fcec2da60e6e6ae5cf7ee6ad4b53dcc3a40cfe7/.circleci/config.yml#L56
...
python setup.py sdist --formats=gztar
python setup.py bdist_wheel
pip install dist/thapbi_pict-*.whl
Ausgabe
Traceback (most recent call last):
File "/opt/conda/bin/pip", line 7, in <module>
from pip._internal import main
File "/opt/conda/lib/python3.7/site-packages/pip/_internal/__init__.py", line 40, in <module>
from pip._internal.cli.autocompletion import autocomplete
File "/opt/conda/lib/python3.7/site-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
from pip._internal.cli.main_parser import create_main_parser
File "/opt/conda/lib/python3.7/site-packages/pip/_internal/cli/main_parser.py", line 11, in <module>
from pip._internal.commands import (
File "/opt/conda/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", line 9, in <module>
from pip._internal.commands.download import DownloadCommand
File "/opt/conda/lib/python3.7/site-packages/pip/_internal/commands/download.py", line 10, in <module>
from pip._internal.operations.prepare import RequirementPreparer
File "/opt/conda/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 9, in <module>
from pip._internal.distributions import (
File "/opt/conda/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution' from 'pip._internal.distributions.source' (/opt/conda/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)
Exited with code 1
Es wäre wirklich hilfreich zu wissen, was im CircleCI- (oder Conda?)-Setup diese internen APIs verwendet - die Reorganisation sollte keinen externen Code beeinflusst haben. Das Hauptproblem, das wir bisher kennen, ist die Reorganisation von main, die sich auf Wrapper-Skripte auswirkt, aber dieses sieht etwas anders aus. Jeder Einblick, den Sie geben können, wäre sehr nützlich, danke.
Bestätigt, dass das Entfernen von pip install --upgrade pip setuptools
Probleme behoben hat,
https://github.com/peterjc/thapbi-pict/commit/4060404c1034a676439aef1369260022577a6627
https://circleci.com/gh/peterjc/thapbi-pict/1074
Dh Etwas ist kaputt gegangen, als ich von Pip 19.2.3 auf 19.3 aktualisiert habe
Ich bin nicht absichtlich mit dem CircleCI Python bereitgestellt, sondern die Conda Pythons zur Verfügung gestellt - ist es Wert von in Schalen pip ...
auf python -m pip ...
nur die Möglichkeit dieses Seins aufgrund Mischen Pythons zu entfernen?
Arbeite jetzt an einem Branch, fügte etwas mehr Protokollierung hinzu und kehrte zur defekten Version zurück:
https://circleci.com/gh/peterjc/thapbi-pict/1076
Dies bestätigt, dass der Traceback durch pip install dist/thapbi_pict-*.whl
ausgelöst wird (Platzhalter für das einzelne frisch gebaute Rad).
OK, die Verwendung von python -m pip ...
anstelle von pip ...
hilft nicht:
https://circleci.com/gh/peterjc/thapbi-pict/1077
https://github.com/peterjc/thapbi-pict/commit/c168fbb7b61b2670bfb73dfb7ea87605fd17bfaf
Ich habe gerade bestätigt, dass from pip._internal import main
mit einem einfachen Upgrade von pip funktioniert (unter Windows, also kein wirklich guter Vergleich, aber trotzdem...). Ich vermute also, dass in Ihrer Umgebung etwas nicht übereinstimmt, obwohl ich anhand der Rückverfolgung nicht erkennen kann, was es ist.
CircleCI kann einen Job mit SSH-Zugriff auf die VM erneut ausführen (nicht dass ich ihn jemals verwendet hätte). Theoretisch könnte dies also zum Debuggen verwendet werden, aber ich weiß nicht wirklich, wo ich anfangen soll.
Ich habe vorerst einen Workaround, und irgendwann wird Conda-Forge auch pip 19.3 gepackt haben, also scheint es eine niedrige Priorität zu haben, es sei denn, andere Leute sehen die gleiche Ausnahme?
OK Cool. Wenn Sie eine Problemumgehung haben, kann ich sie vorerst dort belassen. Wenn andere Kommentare hinzufügen, die darüber berichten, dass es an anderer Stelle passiert, können wir dann noch etwas nachforschen - vielleicht haben sie zusätzliche Informationen, die helfen.
Ich habe ein ähnliches Problem unter macOS, Python: 3.6.9. Der pip-Befehl auf meinem Terminal funktioniert nicht mehr. Irgendwelche Vorschläge?
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
Das hat vorerst geholfen
Ich habe seit 1 Stunden das gleiche Problem mit CircleCI.
Die Versionsänderung des Docker-Images von python:3.7 zu python:3.7.4 behebt dieses Problem. (nur Workaround). so was:
version: 2
...
jobs:
build:
docker:
- image: python:3.7.4
...
Benutzt einer von euch Caching? Ich denke, es ist möglich, dass sich einige Pip-Interna geändert haben und wenn Sie den Cache der alten Python-Version wiederherstellen, bricht Pip ab. Schlagen Sie vor, dass Sie Ihre Kreis-CI-Caches ungültig machen, indem Sie die keys
ändern und sehen, was passiert ... (hat bei mir funktioniert!)
Wie von @bgkelly vorgeschlagen
Ja - das gleiche für mich - das Ändern des Cache-Schlüssels hat dies für die Projekte unseres Teams auf circleci gelöst. Danke @bgkelly
Das Ändern des Cache-Schlüssels hat es für mich nicht gelöst.
Das Hinzufügen eines Kommentars in requirements.txt
hat es zwar getan, aber das ist keine gewünschte Lösung.
In Ordnung, das scheint also ein Caching-Problem für CircleCI zu sein.
Könnte sich bitte jemand an CircleCI-Leute wenden (über deren Support-Kanäle)? Es wäre toll, wenn sie sich das ansehen und sich vielleicht hier einmischen könnten.
Hey Leute,
Ich weiß wirklich nicht, ob Ihnen das in irgendeiner Weise hilft, aber ich habe die gleiche Fehlermeldung in meinem MSYS-Setup erhalten, als ich versuchte, WeasyPrint zu installieren.
Nach der Deinstallation von python3-pip und python3-setuptools habe ich alle pip-Ordner in /usr/lib/python3.7/site-packages/ gelöscht und beide neu installiert.. diesen spezifischen Fehler behoben.
pacman -R python3-pip python3-setuptools
rm -R /usr/lib/python3.7/site-packages/pip
rm -R /usr/lib/python3.7/site-packages/pip-19.3.1.dist-info
pacman -S python3-pip python3-setuptools
Um fair zu sein, bin ich jetzt auf Compiler-Probleme gestoßen... aber vielleicht konnte ich helfen....
Für den Fall, dass dies helfen kann, bin ich auf den Fehler in einem anderen Kontext gestoßen: beim Kopieren einer virtuellen Umgebung von einem Docker-Image in ein anderes in einem mehrstufigen Setup.
Das Quell-Image enthält eine weniger aktuelle Version von pip
während das Ziel-Image eine aktualisierte Version von pip
. Nach dem Kopieren des virtuellen Umgebungsverzeichnisses des Quell-Images in das Ziel-Image gibt es 2 verschiedene Verzeichnisse ( pip-<version>.dist-info
) unter der virtuellen Umgebung site-packages
und pip
funktioniert nicht der gleiche Fehler wie in dieser Ausgabe gemeldet.
Ich habe keine Zeit damit verbracht, das Problem zu beheben, da ich diesem Ansatz, der das Kopieren der virtuellen Umgebung in eine Umgebung beinhaltet, in der bereits Pakete installiert sind, etwas skeptisch bin.
Auf jeden Fall scheint es ein Paketkollisionsproblem zu sein.
Hoffe das hilft! :Lächeln:
Hallo
Ich glaube, wir sehen das gleiche Problem auf unserem internen ReadTheDocs-Server. Es führt beim Erstellen eines Dokuments den folgenden Befehl aus:
var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/bin/python -m pip install --upgrade --cache-dir /var/lib/readthedocs/repo/user_builds/some_doc/.cache/pip pip
Wenn ich den Build-Cache über die ReadTheDocs-GUI-Schnittstelle lösche, ist der Build erfolgreich - aber nur bis zum nächsten Start eines Builds.
Hier ist das vollständige Protokoll:
Traceback (most recent call last):
File "/usr/lib64/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/__main__.py", line 16, in <module>
from pip._internal import main as _main # isort:skip # noqa
File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/__init__.py", line 40, in <module>
from pip._internal.cli.autocompletion import autocomplete
File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
from pip._internal.cli.main_parser import create_main_parser
File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/cli/main_parser.py", line 11, in <module>
from pip._internal.commands import (
File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/commands/__init__.py", line 9, in <module>
from pip._internal.commands.download import DownloadCommand
File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/commands/download.py", line 10, in <module>
from pip._internal.operations.prepare import RequirementPreparer
File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/operations/prepare.py", line 9, in <module>
from pip._internal.distributions import (
File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution'
Hallo,
Ich bin auch auf das Problem gestoßen.
Betriebssystem: Debian GNU/Linux 10 (Linux 4.19.0-6-amd64)
Pip: 19.3.1
conda: 4.7.12
Python:3.7.4
$ pip
Traceback (letzter Anruf zuletzt):
Datei "/home/jiang/anaconda3/bin/pip", Zeile 7, in
aus pip._internal import main
Datei "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/__init__.py", Zeile 40, in
aus pip._internal.cli.autocompletion import autocomplete
Datei "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/cli/autocompletion.py", Zeile 8, in
aus pip._internal.cli.main_parser import create_main_parser
Datei "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/cli/main_parser.py", Zeile 11, in
from pip._internal.commands import (
Datei "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", Zeile 9, in
from pip._internal.commands.download importieren DownloadCommand
Datei "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/commands/download.py", Zeile 10, in
from pip._internal.operations.prepare import RequirementPreparer
Datei "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", Zeile 9, in
aus pip._internal.distributions import (
Datei "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", Zeile 1, in
from pip._internal.distributions.source import SourceDistribution
ImportError: Name 'SourceDistribution' kann nicht von 'pip._internal.distributions.source' importiert werden (/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)
Wir konnten einen Workaround auf unserem lokalen ReadTheDocs-Server durchführen, indem wir den Build-Flow so änderten, dass er speziell die Pip-Version 19.2.3 verwendet. Jetzt führt ReadTheDocs den folgenden Build-Befehl aus - und wir haben kein Caching-Problem mehr:
/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/bin/python -m pip install --upgrade --cache-dir /var/lib/readthedocs/repo/user_builds/some_doc/.cache/pip pip==19.2.3
Genauer gesagt haben wir die lokale Datei python_environment.py aktualisiert, um eine bestimmte Pip-Version zu verwenden: https://github.com/readthedocs/readthedocs.org/blob/7212d6ff738b24a10fb0f4227d3fbdf69e5cab42/readthedocs/doc_builder/python_L322 .
cmd = pip_install_cmd + ['pip']
gewechselt zu:
cmd = pip_install_cmd + ['pip==19.2.3']
Ich weiß, dass mein Setup anders sein könnte als die meisten anderen, aber das Problem auf meiner Seite war auf das PIP sources/
Verzeichnis in der virtuellen Umgebung zurückzuführen (höchstwahrscheinlich PIP-Caching-Probleme oder so). Lassen Sie mich erklären:
Wenn Sie das Verzeichnis user_builds/project/envs/
für ein Projekt löschen und neu erstellen, funktioniert es, aber nur, bis Sie mit dem erneuten Erstellen des Verzeichnisses envs/
wieder beginnen. Ich habe viel Zeit damit verbracht, das Problem zu debuggen, und es stellte sich heraus, dass das Verzeichnis user_builds/project/envs/
(oder etwas darin) Probleme verursachte. Also habe ich weitere Tests durchgeführt, um herauszufinden, dass es das Verzeichnis user_builds/project/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/source/
speziell Probleme verursachte. Ich habe das Verzeichnis user_builds/project/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/source/
, neu erstellt und alles war in Ordnung. Ich habe es wieder aufgebaut und es ist fehlgeschlagen. Ich habe das Verzeichnis user_builds/project/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/
erneut überprüft und festgestellt, dass source/
vorhanden war. Also bin ich zu meiner globalen Python-Installation gegangen und habe das Verzeichnis /path/to/lib/python3.6/dist-packages/pip/_internal/distributions/source/
aus PIP verschoben, das Verzeichnis user_builds/project/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/source/
aus der Projektumgebung entfernt und neu erstellt. Dies wurde erfolgreich erstellt und nicht über den Ordner source/
kopiert, perfekt. Also, jedes Mal, wenn die Dokumente erstellt werden, werden sie ohne Fehler erstellt. Ich hoffe, das hilft jemand anderem.
Beifall.
Versuche dies:
1.curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
2.python get-pip.py
@Guru36
Habe es so oft versucht, ohne Erfolg. Das musst du sowieso am Anfang machen, damit das nicht hilft. Danke trotzdem.
Beifall.
Versuche dies:
1.curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
2.python get-pip.py
Danke schön
Ich habe jetzt Probleme damit bei der Version 0.20.
Schauen Sie sich das jetzt an, Leute. Wenn jemand eine Anleitung zum Reproduzieren mit pip 20.0 bereitstellen könnte, wäre das großartig!
Ich stoße auf das gleiche Problem:
virtualenv venv
. venv/bin/activate
pip install sqlalchemy pymysql
führt zu
Traceback (most recent call last):
File "/tmp/test/venv/bin/pip", line 11, in <module>
sys.exit(main())
File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/cli/main.py", line 73, in main
command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/commands/__init__.py", line 96, in create_command
module = importlib.import_module(module_path)
File "/tmp/test/venv/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 24, in <module>
from pip._internal.cli.req_command import RequirementCommand
File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 20, in <module>
from pip._internal.operations.prepare import RequirementPreparer
File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/operations/prepare.py", line 16, in <module>
from pip._internal.distributions import (
File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution' from 'pip._internal.distributions.source' (/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/distributions/source/__init__.py)
Wenn jemand Anweisungen zum Reproduzieren mit pip 20.0 bereitstellen könnte,
Kurz gesagt, "versuchen Sie, Pip zu verwenden"! Die Ergebnisse des Versuchs, scipy auf einer funktionierenden virtuellen Umgebung zu installieren, auf der scipy bereits installiert ist (dh ich erwarte, dass pip nichts tut):
(farmcat3) [danielevans@rml-dev06 farmcat]$ pip install pip==20.0
Looking in indexes: https://pypi.org/simple, http://phabricator.jbarisk.com:8080
Collecting pip==20.0
Downloading https://files.pythonhosted.org/packages/60/65/16487a7c4e0f95bb3fc89c2e377be331fd496b7a9b08fd3077de7f3ae2cf/pip-20.0-py2.py3-none-any.whl (1.5MB)
|████████████████████████████████| 1.5MB 1.7MB/s
Installing collected packages: pip
Found existing installation: pip 19.3.1
Uninstalling pip-19.3.1:
Successfully uninstalled pip-19.3.1
pipSuccessfully installed pip-20.0
(farmcat3) [danielevans@rml-dev06 farmcat]$ pip install scipy
Traceback (most recent call last):
File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/bin/pip", line 8, in <module>
sys.exit(main())
File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/cli/main.py", line 73, in main
command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/commands/__init__.py", line 96, in create_command
module = importlib.import_module(module_path)
File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib64/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/commands/install.py", line 24, in <module>
from pip._internal.cli.req_command import RequirementCommand
File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/cli/req_command.py", line 20, in <module>
from pip._internal.operations.prepare import RequirementPreparer
File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/operations/prepare.py", line 16, in <module>
from pip._internal.distributions import (
File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution'
Der curl get-pip.py
Trick hat bei mir nicht funktioniert, aber ich habe die Suche nach Unterschieden zwischen meinem venv und dem "offiziellen Code", der systemtechnisch installiert ist, gelöst. (Ich bin auf einem Cluster, _so hic sunt leones_...)
--- /usr/lib/python2.7/site-packages/pip/_internal/distributions/__init__.py 2019-10-28 08:47:20.727522000 +0100
+++ /home/dummyuser/ml/lib/python3.6/site-packages/pip/_internal/distributions/__init__.py 2020-01-21 12:55:48.000000000 +0100
@@ -1,4 +1,4 @@
-von pip._internal.distributions.source.legacy import SourceDistribution
+von pip._internal.distributions.source import SourceDistribution
aus pip._internal.distributions.wheel import WheelDistribution
aus pip._internal.utils.typing import MYPY_CHECK_RUNNING
Der Umzug nach python -m pip
hat mir in meiner Situation geholfen. Von https://github.com/ome/jenkins-library-recursivemerge/pull/4/files
Fehler:
(cd build && curl -sfL ${buildInfraUrl} | tar -zxf -)
virtualenv build/venv && build/venv/bin/pip install ${sccPackage}
Geht vorbei:
python -m venv build/venv
. build/venv/bin/activate
python -m pip install ${sccPackage}
@pradyunsg , auf Fedora 29 kann ich so reproduzieren:
rm -rf ~/.local/lib/python3.7
sudo dnf install python3-pip
pip3.7 install -U --user pip
python3.7 -m pip install requests
```
Traceback (letzter Anruf zuletzt):
Datei "/usr/lib64/python3.7/runpy.py", Zeile 193, in _run_module_as_main
"__main__", mod_spec)
Datei "/usr/lib64/python3.7/runpy.py", Zeile 85, in _run_code
exec(code, run_globals)
Datei "/home/kaiant/.local/lib/python3.7/site-packages/pip/__main__.py", Zeile 19, in
sys.exit(_main())
Datei "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/cli/main.py", Zeile 73, in main
command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
Datei "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", Zeile 96, in create_command
module = importlib.import_module(module_path)
Datei "/usr/lib64/python3.7/importlib/__init__.py", Zeile 127, in import_module
return _bootstrap._gcd_import(name[level:], paket, level)
Datei "
Datei "
Datei "
Datei "
Datei "
Datei "
Datei "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/commands/install.py", Zeile 24, in
from pip._internal.cli.req_command import RequirementCommand
Datei "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", Zeile 20, in
from pip._internal.operations.prepare import RequirementPreparer
Datei "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", Zeile 16, in
aus pip._internal.distributions import (
Datei "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", Zeile 1, in
from pip._internal.distributions.source import SourceDistribution
ImportError: Name 'SourceDistribution' kann nicht von 'pip._internal.distributions.source' importiert werden (/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)
Ich habe das gerade bekommen, als mein Deployment Pip automatisch von 19.3.1 auf 20.0 aktualisiert hat
Alles verwendet bereits Python -m pip - das ist hier nicht das Problem
Ich kann Ihnen sagen, dass der Fix von JediKev darin besteht, diesen Ordner zu löschen:
site-packages/pip/_internal/distributions/source
das Problem behoben
Ein einfacher Python-Docker-Kontext, der den python:3.7-slim
Container (Debian-basiert) verwendet, ist ebenfalls betroffen:
[32;1m$ docker build --compress -t $REGISTRY_IMAGE_SPARROW .[0;m
#2 [internal] load .dockerignore
#2 transferring context: 493B done
#2 DONE 0.0s
#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 1.22kB done
#1 DONE 0.0s
#3 [internal] load metadata for docker.io/library/python:3.7-slim
#3 DONE 0.8s
#4 [base 1/6] FROM docker.io/library/python:3.7-slim<strong i="7">@sha256</strong>:5886bc9424f2edc...
#4 DONE 0.0s
#5 [internal] load build context
#5 transferring context: 531.72kB 0.0s done
#5 DONE 0.0s
#10 [base 6/6] RUN pip install --upgrade pip
#10 CACHED
#8 [base 4/6] RUN ln -s usr/local/bin/docker-entrypoint.sh / # backwards co...
#8 CACHED
#9 [base 5/6] WORKDIR /app
#9 CACHED
#6 [base 2/6] COPY docker-entrypoint.sh /usr/local/bin/
#6 CACHED
#7 [base 3/6] RUN chmod +x /usr/local/bin/docker-entrypoint.sh
#7 CACHED
#11 [requirements 1/2] COPY requirements.txt requirements.txt
#11 CACHED
#12 [requirements 2/2] RUN pip install --no-cache-dir -r requirements.txt
#12 0.912 Traceback (most recent call last):
#12 0.912 File "/usr/local/bin/pip", line 8, in <module>
#12 0.912 sys.exit(main())
#12 0.912 File "/usr/local/lib/python3.7/site-packages/pip/_internal/cli/main.py", line 73, in main
#12 0.912 command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
#12 0.912 File "/usr/local/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", line 96, in create_command
#12 0.912 module = importlib.import_module(module_path)
#12 0.912 File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module
#12 0.912 return _bootstrap._gcd_import(name[level:], package, level)
#12 0.912 File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
#12 0.912 File "<frozen importlib._bootstrap>", line 983, in _find_and_load
#12 0.912 File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
#12 0.912 File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
#12 0.913 File "<frozen importlib._bootstrap_external>", line 728, in exec_module
#12 0.913 File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
#12 0.913 File "/usr/local/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 24, in <module>
#12 0.913 from pip._internal.cli.req_command import RequirementCommand
#12 0.913 File "/usr/local/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 20, in <module>
#12 0.913 from pip._internal.operations.prepare import RequirementPreparer
#12 0.913 File "/usr/local/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 16, in <module>
#12 0.913 from pip._internal.distributions import (
#12 0.913 File "/usr/local/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
#12 0.913 from pip._internal.distributions.source import SourceDistribution
#12 0.913 ImportError: cannot import name 'SourceDistribution' from 'pip._internal.distributions.source' (/usr/local/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)
#12 ERROR: executor failed running [/bin/sh -c pip install --no-cache-dir -r requirements.txt]: runc did not terminate sucessfully
------
> [requirements 2/2] RUN pip install --no-cache-dir -r requirements.txt:
------
failed to solve with frontend dockerfile.v0: failed to build LLB: executor failed running [/bin/sh -c pip install --no-cache-dir -r requirements.txt]: runc did not terminate sucessfully
Habe das gleiche in python:3.7.6-alpine
das auf Github-Aktionen ausgeführt wird
Ich kann diesen Fehler in einem Dockerfile
reproduzieren:
FROM python:3.7
COPY requirements.txt .
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
CMD pip --version
Und in requirements.txst
:
Wenn ich dieses Image erstelle, erhalte ich diesen bösen Fehler. Wenn ich die Zeile entferne, die pip aktualisiert, wird das Image erstellt.
Okay, ich habe dies lokal reproduziert - ich werde bald eine PR mit einem Fix einreichen.
Das Entfernen des Ordners ./site-packages/pip/_internal/distributions/source hilft!
Ja, Pip-Version 20.0 bricht zusammen
Ja, ich habe das gleiche Problem hier (Pip 20.0).
Ja, pip 20.0 bricht mit "virtualenv" ab. Befehl zum Erstellen von Venv
Auch hier schlagen alle unsere CI-Builds, die pip aktualisieren, fehl.
Alle Builds sind aufgrund des gleichen Fehlers auch auf unserer Seite defekt.
Builds pleite
Was passiert, wenn ich auf Pip 19.x zurückkehre? Würde es funktionieren?
BEARBEITEN:
pip install --upgrade "pip==19.3.1"
funktioniert noch.
Das gleiche hier mit Python 3.7.3 und Pip 20.0
pip install pip"<20.0"
temporäre Lösung, aber es funktioniert.
ist es vielleicht möglich, ein virtualenv
erstellen, das pip
Version auf 19.3.1 (die vorherige)
Eine schnelle Lösung, die funktioniert, ist
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.pypython get-pip.py pip==9.0.2
Unsere CI-Pipeline gespeichert
Read The Docs wird jetzt auch von diesem Problem geplagt, wodurch das Erstellen von Dokumenten immer wieder fehlschlägt
ist es vielleicht möglich, eine virtualenv zu erstellen, die pip-version auf 19.3.1 (die vorherige)
@manutero , das --no-download
Flag des virtualenv
Befehls verhindert, dass zum Zeitpunkt der Erstellung der Umgebung versucht wird, die neueste Version von pip
herunterzuladen.
Wenn Sie virtualenv verwenden, führen Sie ein Downgrade auf 19.x durch. Dies hat das Problem in meinem virtualenv behoben:
virtualenv --no-pip <ENV NAME>
# activate the virtual environment
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py pip==19.2.2
Musste die vorherige Version zum Sortieren auswählen,
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py pip=19.3.1
Das gleiche hier mit Python 3.7.6 und Pip 20.0
pip-Version-20.0
Python-Version - 3.6
Schreiben Sie einfach die folgenden Zeilen in die Datei
aus .Legacy-Import SourceDistribution
Können andere, die diesen Fehler sehen, bestätigen, dass in pip/_internal/distributions eine Quelle/ein Ordner vorhanden ist?
Wenn Sie bestätigen können, dass der Ordner existiert, geben Sie hier keinen Kommentar ab – verwenden Sie die 👍-Reaktion in diesem Beitrag. Dieser Ordner existiert nicht, verwenden Sie die 👎-Reaktion.
gleiches Problem hier mit Ubuntu 19.04
Successfully installed pip-20.0
Traceback (most recent call last):
File "/home/pippo/.venvs/test_pgm/bin/pip", line 10, in <module>
sys.exit(main())
File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/cli/main.py", line 73, in main
command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", line 96, in create_command
module = importlib.import_module(module_path)
File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 24, in <module>
from pip._internal.cli.req_command import RequirementCommand
File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 20, in <module>
from pip._internal.operations.prepare import RequirementPreparer
File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 16, in <module>
from pip._internal.distributions import (
File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution' from 'pip._internal.distributions.source' (/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)
Es erscheint nicht mit pip==19.2.3, also habe ich es vorerst zurückgesetzt
Bitte hör auf, "mich auch" zu melden. @pradyunsg arbeitet gerade an einem Fix
Ja. Das zu schlagen hat gestern funktioniert.
Schnipsel für Pipenv-Benutzer
wget https://bootstrap.pypa.io/get-pip.py -O get-pip.py
pipenv run python get-pip.py pip==19.3
Für eine schnelle Lösung,
$(which easy_install) pip==19.3
funktioniert auch ok
Für eine schnelle Lösung,
$(which easy_install) pip==19.3
funktioniert auch ok
Zwischen all den temporären Workarounds hat bei mir nur dieser funktioniert
Ich frage mich, was passieren wird, wenn sie easy_install entfernen... :) - Wie werden wir dann Pip-Probleme beheben?
Das Ersetzen von pip install --upgrade pip
durch pip install --upgrade pip"<20.0"
funktioniert hier.
Musste die vorherige Version zum Sortieren auswählen,
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py pip=19.3.1
Es sollte python3 sein get-pip.py pip==19.3.1
Das Ersetzen von
pip install --upgrade pip
durchpip install --upgrade pip"<20.0"
funktioniert hier.
Hilf mir im Docker
RUN pip install --upgrade pip"<20.0"
Danke @PabloCastellano! Ich ignoriere jetzt nur Kommentare hier, da ich nicht möchte, dass meine Herzfrequenz höher wird. :)
Habe das Bugfix-Release gemacht. Wenn das geholfen hat, verwende 👍 in diesem Beitrag. Ansonsten schreiben Sie bitte einen Kommentar mit der Fehlermeldung.
XD
Ich möchte nicht, dass meine Herzfrequenz höher wird. :)
Habe das Bugfix-Release gemacht.
@pradyunsg Du hast meine gerade gesenkt. Scheint zu funktionieren.
@SergeyLadutko :
Das Ersetzen von
pip install --upgrade pip
durchpip install --upgrade pip"<20.0"
funktioniert hier.Hilf mir im Docker
RUN pip install --upgrade pip"<20.0"
versuche es mit pip install --upgrade pip==19.3.1
Okay, lass mich meinen Build noch einmal ausführen
@pradyunsg Hut ab für die schnelle Lösung, wir wissen es wirklich zu schätzen <3 Ich kann bestätigen, dass sich diese Lösung in CircleCI-Jobs durchgesetzt hat, für alle, die sich fragen.
Beachten Sie, dass get-pip.py noch nicht aktualisiert wurde - das liegt daran, dass ich beim Testen meine eigene Entwicklungsumgebung für get-pip gebohrt habe. :)
Ich werde das in den nächsten Minuten aktualisieren.
Kann bestätigen. pip==20.0.1
funktioniert einwandfrei
@pradyunsg irgendwelche CI-Verbesserungen, damit dies in Zukunft nicht mehr passiert? Ein Docker-Container wäre ausreichend. Würden Sie dafür PRs akzeptieren?
Beachten Sie, dass get-pip.py noch nicht aktualisiert wurde - das liegt daran, dass ich beim Testen meine eigene Entwicklungsumgebung für get-pip gebohrt habe. :)
Ich werde das in den nächsten Minuten aktualisieren.
:) lass es uns wissen, wann das gut ist
Ich werde das in den nächsten Minuten aktualisieren.
Okay, habe das jetzt geschoben. Die Änderung sollte sich inzwischen auf bootstrap.pypa.io übertragen haben. Oder es wird wirklich bald.
Unser Build ist jetzt mit get-pip.py bestanden, danke @pradyunsg
pip 20.0.1 funktioniert einwandfrei. Danke @pradyunsg
Ich kann bestätigen, dass jetzt das neue pip
installiert wird, das nicht mehr unter diesem Fehler leidet. Danke @pradyunsg !
Danke @pradyunsg !!
danke @pradyunsg ! so so viel
danke @pradyunsg für die schnelle Lösung! 🎉.
Danke @pradyunsg für die schnelle
Ich denke, das Problem wurde verursacht, weil es ein source
Modulverzeichnis sowie source.py
im pip/_internal/distributions
Pfad gibt und das bringt die Importe durcheinander
In pip/_internal/distributions/__init__.py
haben Sie eine Importzeile:
from pip._internal.distributions.source import SourceDistribution # <-- here
from pip._internal.distributions.wheel import WheelDistribution
from pip._internal.utils.typing import MYPY_CHECK_RUNNING
Aber es gibt auch ein source
Verzeichnis mit __init__.py
darin,
env ~/.../_internal/distributions ls -ltr
total 32
-rw-r--r-- 1 user xxx 1294 Jan 21 18:02 wheel.py
-rw-r--r-- 1 user xxx 760 Jan 21 18:02 installed.py
-rw-r--r-- 1 user xxx 1425 Jan 21 18:02 base.py
drwxr-xr-x 3 user xxx 4096 Jan 21 18:02 source
-rw-r--r-- 1 user xxx 4201 Jan 21 18:19 source.py
-rw-r--r-- 1 user xxx 961 Jan 21 18:26 __init__.py
drwxr-xr-x 2 user xxx 4096 Jan 21 18:26 __pycache__
Daher wird dieser Import fehlschlagen. Das Umbenennen von source.py
in _source.py
und das Ändern des Imports in __init__.py
in from pip._internal.distributions._source import SourceDistribution
scheint das Problem zu beheben
@pradyunsg Hut ab für die schnelle Lösung, wir wissen es sehr zu schätzen <3
Einverstanden, fantastische Wende bei der Fehlerbehebung hier!
Danke @pradyunsg
Gleicher Fehler wie oben.
Python-Version: Python-3.7.6
Betriebssystem: Windows
Funktioniert nach dem Wechsel zu PIP 19.3.1
Funktioniert jetzt super, danke.
Können Sie in Anbetracht der Art dieses Fehlers bitte die Version 20.0 von PYPA entfernen? https://pypi.org/project/pip/#history
Eine andere Frage wäre, was wir tun könnten, um eine ähnliche Regression in Zukunft zu vermeiden.
Entschuldigung für den Bruch und vielen Dank, dass Sie hier mit uns zusammengearbeitet haben, um diesen Bruch zu beheben!
@xavfernandez hat herausgefunden, warum dies passiert ist und wir werden unseren Veröffentlichungsprozess ändern, um ähnliche Fehler in Zukunft zu vermeiden: #7624
Super Arbeit, danke für die blitzschnelle Abwicklung!
Hallo, ich stecke in 20.0 . fest
Alle Befehle, die ich ausprobiert habe, geben diesen Fehler über 'SourceDistribution' zurück.
pip install --upgrade pip
pip install pip "<20.0"
pip install --upgrade "pip==19.3.1"
Ich habe es auch satt zu deinstallieren:
pip uninstall pip
python -m pip uninstall pip setuptools
Hat jemand eine andere Lösung, um Pip zu deinstallieren?
Ubuntu 18.04.3 LTS
Python 3.6.9
in virtuellen Umgebungen ausführen
Hallo @CharrierCoop! Sie sollten in der Lage sein, get-pip.py herunterzuladen und pip 20.0.1 damit zu installieren.
Perfekt !!
danke @pradyunsg
Können Sie bitte die Version 20.0 von PYPA entfernen?
Nein. Wir werden es nicht löschen. Wir haben eine standardmäßig unterstützte Funktion zum "Zerreißen" defekter Veröffentlichungen. Sobald PyPI dies unterstützt, werden wir diese Version entfernen (falls es bis dahin jemanden interessiert).
Weitere Informationen finden Sie unter https://www.python.org/dev/peps/pep-0592/#motivation .
sudo python get-pip.py pip==19.3.1"
dieses Problem beheben
sudo python get-pip.py pip==19.3.1"
dieses Problem beheben
Danke sehr
sudo python get-pip.py pip==19.3.1"
dieses Problem beheben
Keine Notwendigkeit, dieses Problem wurde von @pradyunsg behoben
Hallo @CharrierCoop! Sie sollten in der Lage sein, get-pip.py herunterzuladen und pip 20.0.1 damit zu installieren.
Ich habe versucht, dasselbe auf Raspberry Pi 4 (Python 3.7.3, pip-Version - 20.0 und OS - Raspbian Buster Lite) zu tun, aber es war nicht erfolgreich.
FEHLER: Es konnte keine Version gefunden werden, die die Anforderung pi p . erfüllt
FEHLER: Keine passende Distribution für pip . gefunden
Irgendeine Lösung?
@Gilf641 Bitte
Ich werde dieses Problem jetzt schließen, da es anscheinend für die meisten Benutzer funktioniert.
Wenn Sie immer noch Probleme haben, suchen Sie bitte nach Duplikaten, die früher eingereicht wurden (seit dem 21. Januar, für pip 20.0) und wenn keine vorhanden sind, reichen Sie ein neues Problem ein.
Hilfreichster Kommentar
Danke @PabloCastellano! Ich ignoriere jetzt nur Kommentare hier, da ich nicht möchte, dass meine Herzfrequenz höher wird. :)
Habe das Bugfix-Release gemacht. Wenn das geholfen hat, verwende 👍 in diesem Beitrag. Ansonsten schreiben Sie bitte einen Kommentar mit der Fehlermeldung.