Hallo,
Mein CI wird unendlich aufgelöst, wenn versucht wird, die Abhängigkeiten eines Projekts zum Testen zu installieren:
pip install -e .[test] --use-feature=2020-resolver -i https://artifactory.company.com/api/pypi/pypi/simple
Ausgabe
Looking in indexes: https://artifactory.company.com/api/pypi/pypi/simple
Collecting deprecation
Downloading https://artifactory.company.com/api/pypi/pypi/packages/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl (11 kB)
Collecting six
Downloading https://artifactory.company.com/api/pypi/pypi/packages/packages/ee/ff/48bde5c0f013094d729fe4b0316ba2a24774b3ff1c52d924a8a4cb04078a/six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting toolz
Downloading https://artifactory.company.com/api/pypi/pypi/packages/packages/12/f5/537e55f8ba664ff2a26f26913010fb0fcb98b6bbadc6158af888184fd0b7/toolz-0.11.1-py3-none-any.whl (55 kB)
Collecting packaging
Downloading https://artifactory.company.com/api/pypi/pypi/packages/packages/46/19/c5ab91b1b05cfe63cccd5cfc971db9214c6dd6ced54e33c30d5af1d2bc43/packaging-20.4-py2.py3-none-any.whl (37 kB)
Collecting pyparsing>=2.0.2
Downloading https://artifactory.company.com/api/pypi/pypi/packages/packages/8a/bb/488841f56197b13700afd5658fc279a2025a39e22449b7cf29864669b15d/pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
Installing collected packages: six, pyparsing, packaging, toolz, deprecation
Successfully installed deprecation-2.1.0 packaging-20.4 pyparsing-2.4.7 six-1.15.0 toolz-0.11.1
[32;1m$ pip install git+https://${CI_REGISTRY_USER}:${CI_JOB_TOKEN}@gitlab.company.com/proj/pygraph.git<strong i="11">@Dev_Py3</strong> ${PIP_OPTS}[0;m
Looking in indexes: https://artifactory.company.com/api/pypi/pypi/simple
Collecting git+https://gitlab-ci-token:****@gitlab.company.com/proj/pygraph.git<strong i="12">@Dev_Py3</strong>
Cloning https://gitlab-ci-token:****@gitlab.company.com/proj/pygraph.git (to revision Dev_Py3) to /tmp/pip-req-build-eulnmcb2
Collecting networkx==2.*
Downloading https://artifactory.company.com/api/pypi/pypi/packages/packages/9b/cd/dc52755d30ba41c60243235460961fc28022e5b6731f16c268667625baea/networkx-2.5-py3-none-any.whl (1.6 MB)
Collecting redis
Downloading https://artifactory.company.com/api/pypi/pypi/packages/packages/a7/7c/24fb0511df653cf1a5d938d8f5d19802a88cef255706fdda242ff97e91b7/redis-3.5.3-py2.py3-none-any.whl (72 kB)
Collecting decorator>=4.3.0
Downloading https://artifactory.company.com/api/pypi/pypi/packages/packages/ed/1b/72a1821152d07cf1d8b6fce298aeb06a7eb90f4d6d41acec9861e7cc6df0/decorator-4.4.2-py2.py3-none-any.whl (9.2 kB)
Building wheels for collected packages: graph-pygraph
Building wheel for graph-pygraph (setup.py): started
Building wheel for graph-pygraph (setup.py): finished with status 'done'
Created wheel for graph-pygraph: filename=graph_pygraph-0.0.202010091542+devpy3-py3-none-any.whl size=71373 sha256=610fe21400ba7adec344b8345b819d42244631d11227a24bfb0fe068c959c309
Stored in directory: /tmp/pip-ephem-wheel-cache-ovmjos36/wheels/7e/80/09/96d325dfa75fe4d16a6345d433dc8d944ebe48f4a049a12633
Successfully built graph-pygraph
Installing collected packages: decorator, redis, networkx, graph-pygraph
Successfully installed decorator-4.4.2 graph-pygraph-0.0.202010091542+devpy3 networkx-2.5 redis-3.5.3
[32;1m$ pip install git+https://${CI_REGISTRY_USER}:${CI_JOB_TOKEN}@gitlab.company.com/proj/parser.git<strong i="13">@Dev_Py3</strong> ${PIP_OPTS}[0;m
Looking in indexes: https://artifactory.company.com/api/pypi/pypi/simple
Collecting git+https://gitlab-ci-token:****@gitlab.company.com/proj/parser.git<strong i="14">@Dev_Py3</strong>
Cloning https://gitlab-ci-token:****@gitlab.company.com/proj/parser.git (to revision Dev_Py3) to /tmp/pip-req-build-h_satb7q
Requirement already satisfied: deprecation in ./.venv/lib/python3.6/site-packages (from graph-parser==0.0.202009100923+devpy3) (2.1.0)
Requirement already satisfied: six in ./.venv/lib/python3.6/site-packages (from graph-parser==0.0.202009100923+devpy3) (1.15.0)
Collecting defusedxml
Downloading https://artifactory.company.com/api/pypi/pypi/packages/packages/06/74/9b387472866358ebc08732de3da6dc48e44b0aacd2ddaa5cb85ab7e986a2/defusedxml-0.6.0-py2.py3-none-any.whl (23 kB)
Requirement already satisfied: packaging in ./.venv/lib/python3.6/site-packages (from deprecation->graph-parser==0.0.202009100923+devpy3) (20.4)
Requirement already satisfied: six in ./.venv/lib/python3.6/site-packages (from graph-parser==0.0.202009100923+devpy3) (1.15.0)
Requirement already satisfied: pyparsing>=2.0.2 in ./.venv/lib/python3.6/site-packages (from packaging->deprecation->graph-parser==0.0.202009100923+devpy3) (2.4.7)
Building wheels for collected packages: graph-parser
Building wheel for graph-parser (setup.py): started
Building wheel for graph-parser (setup.py): finished with status 'done'
Created wheel for graph-parser: filename=graph_parser-0.0.202009100923+devpy3-py3-none-any.whl size=20698 sha256=f2d7b651180d9f844b7aafe8b9431938ceecbfec798407c47b7258b94528c75c
Stored in directory: /tmp/pip-ephem-wheel-cache-bmna_g2x/wheels/fb/eb/f2/38806b77dcb72c250f63911a3567922b604ab6e88ab74ff980
Successfully built graph-parser
Installing collected packages: defusedxml, graph-parser
Successfully installed defusedxml-0.6.0 graph-parser-0.0.202009100923+devpy3
[32;1m$ pip install git+https://${CI_REGISTRY_USER}:${CI_JOB_TOKEN}@gitlab.company.com/proj/interfaces.git<strong i="15">@Dev_Py3</strong> --no-deps ${PIP_OPTS}[0;m
Looking in indexes: https://artifactory.company.com/api/pypi/pypi/simple
Collecting git+https://gitlab-ci-token:****@gitlab.company.com/proj/interfaces.git<strong i="16">@Dev_Py3</strong>
Cloning https://gitlab-ci-token:****@gitlab.company.com/proj/interfaces.git (to revision Dev_Py3) to /tmp/pip-req-build-20dgw2sv
Building wheels for collected packages: graph-interfaces
Building wheel for graph-interfaces (setup.py): started
Building wheel for graph-interfaces (setup.py): finished with status 'done'
Created wheel for graph-interfaces: filename=graph_interfaces-0.0.202009180922+devpy3-py3-none-any.whl size=36309 sha256=4a461620d4810f49bd1072a202ab767d56a171bcaa6c5609dcdbaadcc7c4f0a9
Stored in directory: /tmp/pip-ephem-wheel-cache-5fdbdk3o/wheels/03/ab/79/5bc1653cb185c54b17d12b2b8d495e5231cf117605d3073d9e
Successfully built graph-interfaces
Installing collected packages: graph-interfaces
Successfully installed graph-interfaces-0.0.202009180922+devpy3
[32;1m$ pip install git+https://${CI_REGISTRY_USER}:${CI_JOB_TOKEN}@gitlab.company.com/proj/post-binding.git<strong i="17">@Dev_Py3</strong> --no-deps ${PIP_OPTS}[0;m
Looking in indexes: https://artifactory.company.com/api/pypi/pypi/simple
Collecting git+https://gitlab-ci-token:****@gitlab.company.com/proj/post-binding.git<strong i="18">@Dev_Py3</strong>
Cloning https://gitlab-ci-token:****@gitlab.company.com/proj/post-binding.git (to revision Dev_Py3) to /tmp/pip-req-build-94mbisdx
Building wheels for collected packages: graph-post-bindings
Building wheel for graph-post-bindings (setup.py): started
Building wheel for graph-post-bindings (setup.py): finished with status 'done'
Created wheel for graph-post-bindings: filename=graph_post_bindings-Dev-py3-none-any.whl size=211749 sha256=efbf8dfa72e4e461740a19a1208952d712fdcace52f17379fd7ad18d9da3b912
Stored in directory: /tmp/pip-ephem-wheel-cache-vwr6n_g0/wheels/43/7e/ef/8849b821244fee59fc5b97c8694cf87e5609633ea26d65f8a0
Successfully built graph-post-bindings
Installing collected packages: graph-post-bindings
Successfully installed graph-post-bindings-Dev
[32;1m$ pip install -e .[test] ${PIP_OPTS}[0;m
Looking in indexes: https://artifactory.company.com/api/pypi/pypi/simple
Obtaining file:///tmp/proj/scenarios
Requirement already satisfied: graph-pygraph<1 in ./.venv/lib/python3.6/site-packages (from graph-scenarios==0.0.202010191027+unknown) (0.0.202010091542+devpy3)
Requirement already satisfied: graph-interfaces<1 in ./.venv/lib/python3.6/site-packages (from graph-scenarios==0.0.202010191027+unknown) (0.0.202009180922+devpy3)
Requirement already satisfied: graph-parser<1 in ./.venv/lib/python3.6/site-packages (from graph-scenarios==0.0.202010191027+unknown) (0.0.202009100923+devpy3)
Requirement already satisfied: graph-post_bindings==Dev in ./.venv/lib/python3.6/site-packages (from graph-scenarios==0.0.202010191027+unknown) (Dev)
Requirement already satisfied: toolz in ./.venv/lib/python3.6/site-packages (from graph-scenarios==0.0.202010191027+unknown) (0.11.1)
Requirement already satisfied: graph-pygraph<1 in ./.venv/lib/python3.6/site-packages (from graph-scenarios==0.0.202010191027+unknown) (0.0.202010091542+devpy3)
Requirement already satisfied: graph-interfaces<1 in ./.venv/lib/python3.6/site-packages (from graph-scenarios==0.0.202010191027+unknown) (0.0.202009180922+devpy3)
Requirement already satisfied: graph-parser<1 in ./.venv/lib/python3.6/site-packages (from graph-scenarios==0.0.202010191027+unknown) (0.0.202009100923+devpy3)
Requirement already satisfied: graph-post_bindings==Dev in ./.venv/lib/python3.6/site-packages (from graph-scenarios==0.0.202010191027+unknown) (Dev)
Requirement already satisfied: toolz in ./.venv/lib/python3.6/site-packages (from graph-scenarios==0.0.202010191027+unknown) (0.11.1)
Collecting cerberus
Downloading https://artifactory.company.com/api/pypi/pypi/packages/packages/90/a7/71c6ed2d46a81065e68c007ac63378b96fa54c7bb614d653c68232f9c50c/Cerberus-1.3.2.tar.gz (52 kB)
Requirement already satisfied: setuptools in ./.venv/lib/python3.6/site-packages (from cerberus->graph-scenarios==0.0.202010191027+unknown) (50.3.2)
Requirement already satisfied: redis in ./.venv/lib/python3.6/site-packages (from graph-pygraph<1->graph-scenarios==0.0.202010191027+unknown) (3.5.3)
Requirement already satisfied: networkx==2.* in ./.venv/lib/python3.6/site-packages (from graph-pygraph<1->graph-scenarios==0.0.202010191027+unknown) (2.5)
Requirement already satisfied: graph-parser<1 in ./.venv/lib/python3.6/site-packages (from graph-scenarios==0.0.202010191027+unknown) (0.0.202009100923+devpy3)
Requirement already satisfied: graph-pygraph<1 in ./.venv/lib/python3.6/site-packages (from graph-scenarios==0.0.202010191027+unknown) (0.0.202010091542+devpy3)
Requirement already satisfied: redis in ./.venv/lib/python3.6/site-packages (from graph-pygraph<1->graph-scenarios==0.0.202010191027+unknown) (3.5.3)
Requirement already satisfied: deprecation in ./.venv/lib/python3.6/site-packages (from graph-parser<1->graph-scenarios==0.0.202010191027+unknown) (2.1.0)
Requirement already satisfied: six in ./.venv/lib/python3.6/site-packages (from graph-parser<1->graph-scenarios==0.0.202010191027+unknown) (1.15.0)
Requirement already satisfied: defusedxml in ./.venv/lib/python3.6/site-packages (from graph-parser<1->graph-scenarios==0.0.202010191027+unknown) (0.6.0)
Requirement already satisfied: toolz in ./.venv/lib/python3.6/site-packages (from graph-scenarios==0.0.202010191027+unknown) (0.11.1)
Collecting graph-parser<1
Downloading https://artifactory.company.com/api/pypi/pypi/graph-parser/0.0.202009100923%2Bunknown/graph_parser-0.0.202009100923%2Bunknown-py3-none-any.whl (20 kB)
Requirement already satisfied: deprecation in ./.venv/lib/python3.6/site-packages (from graph-parser<1->graph-scenarios==0.0.202010191027+unknown) (2.1.0)
Requirement already satisfied: six in ./.venv/lib/python3.6/site-packages (from graph-parser<1->graph-scenarios==0.0.202010191027+unknown) (1.15.0)
Requirement already satisfied: defusedxml in ./.venv/lib/python3.6/site-packages (from graph-parser<1->graph-scenarios==0.0.202010191027+unknown) (0.6.0)
Requirement already satisfied: toolz in ./.venv/lib/python3.6/site-packages (from graph-scenarios==0.0.202010191027+unknown) (0.11.1)
Ich bekomme die letzten 4 Zeilen, die sich für immer wiederholen:
Requirement already satisfied: deprecation in ./.venv/lib/python3.6/site-packages (from graph-parser<1->graph-scenarios==0.0.202010191027+unknown) (2.1.0)
Requirement already satisfied: six in ./.venv/lib/python3.6/site-packages (from graph-parser<1->graph-scenarios==0.0.202010191027+unknown) (1.15.0)
Requirement already satisfied: defusedxml in ./.venv/lib/python3.6/site-packages (from graph-parser<1->graph-scenarios==0.0.202010191027+unknown) (0.6.0)
Requirement already satisfied: toolz in ./.venv/lib/python3.6/site-packages (from graph-scenarios==0.0.202010191027+unknown) (0.11.1)
Zusätzliche Information
In der obigen Ausgabe wird PIP_OPTS
auf --use-feature=2020-resolver -i https://artifactory.company.com/api/pypi/pypi/simple
.
Wir verwenden einen von Unternehmen gehosteten Index, der keine Probleme mit pip==20.2.3
.
Hallo! Vielen Dank für die Einreichung dieser Ausgabe! Könnten Sie die Anforderungen teilen, die pip zu installieren versucht? Dies wäre in der setup.py/pyproject.toml für das entsprechende Projekt.
Die "öffentlichen" Abhängigkeiten sind:
install_requires=[
'cerberus',
'<inhouse component 1>',
'<inhouse component 2>',
'<inhouse component 3>',
'<inhouse component 4>',
'<inhouse component 5>',
'pint',
'<inhouse component 6>',
'<inhouse component 7>',
'toolz',
'pyyaml>=5.1',
],
extras_require={'test': ['pylint', 'pytest>=4', 'pytest-cov', 'pytest-html', 'pytest-xdist',]},
Wie Sie sehen, verfügen wir jedoch über mehrere interne Bibliotheken, die ebenfalls erforderlich sind.
Hier ist ein pip list
von welcher Version 20.2.3
installiert wird, falls es hilft:
$ pip list
Package Version Location
-------------------- ------------------------ ------------------
amqp 5.0.1
apipkg 1.5
asteval 0.9.19
astroid 2.4.2
attrs 20.2.0
<inhouse>
billiard 3.6.3.0
celery 5.0.1
Cerberus 1.3.2
certifi 2020.6.20
chardet 3.0.4
click 7.1.2
click-didyoumean 0.0.3
click-repl 0.1.6
coverage 5.3
cycler 0.10.0
decorator 4.4.2
defusedxml 0.6.0
deprecation 2.1.0
execnet 1.7.1
future 0.18.2
<inhouse>
<inhouse>
<inhouse>
<inhouse>
<inhouse>
h5py 2.10.0
importlib-metadata 2.0.0
importlib-resources 3.0.0
iniconfig 1.1.1
isort 5.6.4
kiwisolver 1.2.0
kombu 5.0.2
lazy-object-proxy 1.4.3
<inhouse>
lmfit 1.0.1
matplotlib 3.3.2
mccabe 0.6.1
munch 2.5.0
networkx 2.5
numpy 1.19.2
packaging 20.4
pandas 1.1.3
Pillow 8.0.0
Pint 0.16.1
pip 20.2.3
pluggy 0.13.1
<inhouse>
<inhouse>
prompt-toolkit 3.0.8
py 1.9.0
<inhouse>
<inhouse>
<inhouse>
pylint 2.6.0
pyparsing 2.4.7
<inhouse>
pytest 6.1.1
pytest-cov 2.10.1
pytest-forked 1.3.0
pytest-html 2.1.1
pytest-metadata 1.10.0
WARNING: You are using pip version 20.2.3; however, version 20.2.4 is available.
You should consider upgrading via the '/tmp/ues/scenarios/.venv/bin/python -m pip install --upgrade pip' command.
pytest-xdist 2.1.0
python-dateutil 2.8.1
pytz 2020.1
PyYAML 5.3.1
redis 3.5.3
scipy 1.5.3
setuptools 50.3.2
six 1.15.0
tabulate 0.8.7
toml 0.10.1
toolz 0.11.1
typed-ast 1.4.1
uncertainties 3.1.4
vine 5.0.0
wcwidth 0.2.5
wheel 0.35.1
wrapt 1.12.1
xlwt 1.3.0
zipp 3.3.1
Ich bin mir nicht sicher, ob es relevant sein wird, aber es könnte erwähnenswert sein, dass ich _pre-pip install_ deprecation six toolz
, was bedeutet, dass ich es tatsächlich tue:
pip install deprecation six toolz ${PIP_OPTS}
# some more pip installation using the new resolver
pip install -e .[test] ${PIP_OPTS}
Danke, dass du das geteilt hast. Diese Informationen reichen jedoch immer noch nicht aus, um dieses Problem zu reproduzieren. :(
Grundsätzlich würde ich die gesamte Zuordnung von (package-name, version): [dependencies]
benötigen, die pip während des Auflösungsprozesses sieht, um dies zu debuggen, und ich kann offensichtlich die Abhängigkeiten Ihrer internen Pakete nicht nachschlagen. ;)
Also ein paar verwandte Fragen:
.
anstelle von .[test]
(dh ohne den zusätzlichen Test)?Grundsätzlich müsste ich den internen Status des Resolvers neu erstellen / sehen, wenn er stecken bleibt, den wir aus verschiedenen Gründen nirgendwo ausdrucken / protokollieren.
Okay, ich habe versucht, das Problem lokal ohne Erfolg zu reproduzieren.
Ich habe versucht, dies in unserem CI in einem anderen Zweig zu reproduzieren, und es ist erneut nicht fehlgeschlagen.
Also ging ich zurück zum ursprünglichen Zweig, der heute Probleme hatte, und wechselte zurück zu 20.2.4
und diesmal gelang es mir, die Abhängigkeiten zu lösen ...
Könnte dies ein Problem mit dem Caching sein oder so?
Unser CI arbeitet mit K8-Läufern zusammen, daher bezweifle ich, dass dies der Fall sein könnte.
Soll ich das schließen und wieder öffnen, wenn es wieder passiert?
Könnte dies ein Problem mit dem Caching sein oder so?
pip speichert während der Abhängigkeitsauflösung nichts zwischen - nur Netzwerk-E / A. Ich glaube nicht, dass es das sein könnte.
Soll ich das schließen und wieder öffnen, wenn es wieder passiert?
Sicher! Das ist für mich in Ordnung. Wenn Sie in der Lage sind, einen Wiedergabegerät zu entwickeln, wäre das großartig!
Hey, ich sehe auch ein ähnliches Problem, das plötzlich vor einem Tag begann.
Auf Pip 20.2.4 kann ich dies mit just reproduzieren
pip install --use-feature=2020-resolver "google-api-core>1.18.0,<1.21.0" "google-cloud-monitoring>=2.0.0"
Das Verhalten scheint ein bisschen nicht deterministisch zu sein, aber jedes Mal, wenn es beginnt, viele Versionen (möglicherweise jede Version!) Einer Abhängigkeit herunterzuladen, bleibt es entweder in einer Requirement already satisfied
-Schleife stecken oder scheint einfach vollständig einzufrieren. Dies ist ein kurzes Beispiel, aber wir hatten einen CI-Build, der 6 Stunden lang stecken blieb, bevor er getötet wurde.
Beachten Sie, dass die beiden Bibliotheken, die ich zu installieren versuche, tatsächlich einen Versionskonflikt verursachen. Wenn ich --use-feature=2020-resolver
lösche, wird eine normale Fehlermeldung angezeigt:
google-cloud-monitoring 2.0.0 requires google-api-core[grpc]<2.0.0dev,>=1.22.2, but you'll have google-api-core 1.20.1 which is incompatible.
Auch wenn ich auf Pip 20.2.3 herunterfalle (und 2020-resolver
), erhalte ich schnell einen Abhängigkeitskonfliktfehler.
Wenn ich die obige Anforderung in google-cloud-monitoring<2.0.0
ändere, funktioniert sie einwandfrei, sowohl mit als auch ohne 2020-resolver
Hoffe das hilft
Ich bin auch darauf gestoßen - ich habe den neuen Resolver gegen eine vorhandene (ziemlich große) requirements.txt
-Datei ausgeführt und es kam schließlich zu einer Endlosschleife von Requirement already satisfied
.
Hier sind meine Schritte zum Reproduzieren: https://gist.github.com/simonw/c53ad97ac2cd495e741b52f88d22b45d
Kürzere Version: Ich habe pip install --use-feature=2020-resolver -r requirements.txt
für diese Datei ausgeführt: https://gist.githubusercontent.com/simonw/c53ad97ac2cd495e741b52f88d22b45d/raw/e09640304fcdf1990844f8ff8ecc92ef654d21b7/requirements
Wenn ich ohne das Flag --use-feature=
laufe, habe ich Folgendes:
ERROR: After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves dependency conflicts.
We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.
pocket-to-sqlite 0.2 requires sqlite-utils~=2.4.4, but you'll have sqlite-utils 2.22 which is incompatible.
healthkit-to-sqlite 0.5 requires sqlite-utils~=2.4.4, but you'll have sqlite-utils 2.22 which is incompatible.
Obwohl das Endlosschleifenproblem diese Pakete seltsamerweise nicht erwähnte, sah es so aus:
Collecting twitter-to-sqlite~=0.20
Using cached twitter_to_sqlite-0.20-py3-none-any.whl (25 kB)
Requirement already satisfied: click~=7.1.1 in /Users/simon/.local/share/virtualenvs/pipnext-HNJm0oR8/lib/python3.8/site-packages (from datasette>=0.50.2->-r requirements.txt (line 2)) (7.1.2)
Requirement already satisfied: click~=7.1.1 in /Users/simon/.local/share/virtualenvs/pipnext-HNJm0oR8/lib/python3.8/site-packages (from datasette>=0.50.2->-r requirements.txt (line 2)) (7.1.2)
...
Ich habe mein Problem behoben, indem ich alle meine ~=
-Anforderungen gegen >=
-Anforderungen ausgetauscht habe.
Ich denke, hier gibt es einen Fehler, aber es ist ein Fehler in der Benutzeroberfläche: Die Anforderungen an die Endlosschleife scheinen durch den in der Warnung angezeigten Abhängigkeitskonflikt ausgelöst worden zu sein, aber der Fehler selbst (Endlosschleife über Requirement already satisfied
für einige nicht verwandtes Paket) war wirklich verwirrend.
Pro Gespräch in einer Besprechung in dieser Woche muss @pradyunsg dies weiter untersuchen - Hilfe von anderen wäre ebenfalls willkommen ( @pfmoore und @uranusjr, falls Sie einen Moment Zeit haben, um zu helfen).
@pradyunsg ist das etwas, herumstochern könntest?
Es ist unwahrscheinlich, dass ich kurzfristig über die Bandbreite verfüge, aber ich könnte einen Blick darauf werfen, wenn ich Freizeit habe.
Bei Verwendung des aktuellen Hauptzweigs fallen alle Wiedergabegeräte grundsätzlich sofort aus. Ich habe sie in einer sauberen virtuellen Umgebung auf einer Ubuntu-VM ausgeführt, wobei der Hauptzweig von pip im bearbeitbaren Modus mit setuptools 41.2.0 installiert war.
@DanSimons https://github.com/pypa/pip/issues/9011#issuecomment -712280236:
$ pip install --use-feature=2020-resolver "google-api-core>1.18.0,<1.21.0" "google-cloud-monitoring>=2.0.0"
Collecting google-cloud-monitoring>=2.0.0
Using cached google_cloud_monitoring-2.0.0-py2.py3-none-any.whl (287 kB)
Collecting google-api-core<1.21.0,>1.18.0
Using cached google_api_core-1.20.1-py2.py3-none-any.whl (90 kB)
Requirement already satisfied: setuptools>=34.0.0 in ./pythonenv3.8/lib/python3.8/site-packages (from google-api-core<1.21.0,>1.18.0) (41.2.0)
Collecting google-api-core[grpc]<2.0.0dev,>=1.22.2
Using cached google_api_core-1.23.0-py2.py3-none-any.whl (91 kB)
Using cached google_api_core-1.22.4-py2.py3-none-any.whl (91 kB)
Using cached google_api_core-1.22.3-py2.py3-none-any.whl (91 kB)
Using cached google_api_core-1.22.2-py2.py3-none-any.whl (91 kB)
Collecting google-api-core<1.21.0,>1.18.0
Downloading google_api_core-1.19.1-py2.py3-none-any.whl (90 kB)
|████████████████████████████████| 90 kB 4.4 MB/s
Requirement already satisfied: setuptools>=34.0.0 in ./pythonenv3.8/lib/python3.8/site-packages (from google-api-core<1.21.0,>1.18.0) (41.2.0)
Downloading google_api_core-1.19.0-py2.py3-none-any.whl (90 kB)
|████████████████████████████████| 90 kB 4.7 MB/s
Requirement already satisfied: setuptools>=34.0.0 in ./pythonenv3.8/lib/python3.8/site-packages (from google-api-core<1.21.0,>1.18.0) (41.2.0)
Downloading google_api_core-1.20.0-py2.py3-none-any.whl (90 kB)
|████████████████████████████████| 90 kB 5.9 MB/s
Requirement already satisfied: setuptools>=34.0.0 in ./pythonenv3.8/lib/python3.8/site-packages (from google-api-core<1.21.0,>1.18.0) (41.2.0)
ERROR: Cannot install google-api-core<1.21.0 and >1.18.0, google-api-core[grpc] 1.23.0, google-api-core<1.21.0 and >1.18.0, google-api-core[grpc] 1.22.4, google-api-core<1.21.0 and >1.18.0, google-api-core[grpc] 1.22.3, google-api-core<1.21.0 and >1.18.0 and google-api-core[grpc] 1.22.2 because these package versions have conflicting dependencies.
The conflict is caused by:
The user requested google-api-core<1.21.0 and >1.18.0
google-api-core[grpc] 1.23.0 depends on google-api-core 1.23.0 (from https://files.pythonhosted.org/packages/2e/3d/d7af13040ab5b259994a4434ff03d68084a994e709bc8afa4bee1235310e/google_api_core-1.23.0-py2.py3-none-any.whl#sha256=94d8c707d358d8d9e8b0045c42be20efb58433d308bd92cf748511c7825569c8 (from https://pypi.org/simple/google-api-core/) (requires-python:>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*))
The user requested google-api-core<1.21.0 and >1.18.0
google-api-core[grpc] 1.22.4 depends on google-api-core 1.22.4 (from https://files.pythonhosted.org/packages/9f/52/e7720d652aeb7d514d3a2e62d263c8058f465beee2fc41260591c0fecc3a/google_api_core-1.22.4-py2.py3-none-any.whl#sha256=15e00ceb7e6dc44159e2a41a222830744e9ebcb3a553c580b61cb5a66572f2f0 (from https://pypi.org/simple/google-api-core/) (requires-python:>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*))
The user requested google-api-core<1.21.0 and >1.18.0
google-api-core[grpc] 1.22.3 depends on google-api-core 1.22.3 (from https://files.pythonhosted.org/packages/eb/b0/ea7b8a2c136095c5be2f14210b31b214cb74c1eb8fee09a01ad0423a2a95/google_api_core-1.22.3-py2.py3-none-any.whl#sha256=6a95bfcf6f661ec0dffd96013b47100765f4f88ce54412562176bfcb11a997c1 (from https://pypi.org/simple/google-api-core/) (requires-python:>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*))
The user requested google-api-core<1.21.0 and >1.18.0
google-api-core[grpc] 1.22.2 depends on google-api-core 1.22.2 (from https://files.pythonhosted.org/packages/3c/45/a5707ce2cbd6681c09e69a0ce10d9bebe98e0231c458a4dc652670f3584f/google_api_core-1.22.2-py2.py3-none-any.whl#sha256=67e33a852dcca7cb7eff49abc35c8cc2c0bb8ab11397dc8306d911505cae2990 (from https://pypi.org/simple/google-api-core/) (requires-python:>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*))
To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies
@simonws https://github.com/pypa/pip/issues/9011#issuecomment -714025122:
$ pip install --use-feature=2020-resolver -r requirements.txt
Collecting https://github.com/simonw/goodreads-to-sqlite/archive/f3d5cd1692e8b5f830416512c6778079e500917a.zip (from -r requirements.txt (line 38))
Downloading https://github.com/simonw/goodreads-to-sqlite/archive/f3d5cd1692e8b5f830416512c6778079e500917a.zip
| 364 kB 16.8 MB/s
Collecting datasette>=0.50.2
Downloading datasette-0.50.2-py3-none-any.whl (205 kB)
|████████████████████████████████| 205 kB 10.8 MB/s
Collecting datasette-haversine
Downloading datasette_haversine-0.1-py3-none-any.whl (6.5 kB)
Collecting datasette-render-markdown>=1.1.2
Downloading datasette_render_markdown-1.1.2-py3-none-any.whl (8.7 kB)
Collecting datasette-show-errors
Downloading datasette_show_errors-0.2-py3-none-any.whl (6.3 kB)
Collecting datasette-write
Downloading datasette_write-0.1-py3-none-any.whl (3.6 kB)
Collecting datasette-init
Downloading datasette_init-0.2-py3-none-any.whl (2.9 kB)
Collecting dogsheep-beta>=0.9
Downloading dogsheep_beta-0.9-py3-none-any.whl (10 kB)
Collecting yaml-to-sqlite~=0.3
Downloading yaml_to_sqlite-0.3-py3-none-any.whl (7.5 kB)
Collecting healthkit-to-sqlite~=0.5
Downloading healthkit_to_sqlite-0.5-py3-none-any.whl (9.3 kB)
ERROR: Cannot install sqlite-utils>=2.17, -r requirements.txt (line 25), -r requirements.txt (line 28), -r requirements.txt (line 38), -r requirements.txt (line 39) and -r requirements.txt (line 40) because these package versions have conflicting dependencies.
The conflict is caused by:
The user requested sqlite-utils>=2.17
datasette-init 0.2 depends on sqlite-utils
dogsheep-beta 0.9 depends on sqlite-utils
goodreads-to-sqlite 0.4 depends on sqlite-utils>=2.9
yaml-to-sqlite 0.3 depends on sqlite-utils
healthkit-to-sqlite 0.5 depends on sqlite-utils~=2.4.4
To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies
Ich habe versucht, den neuesten Hauptzweig zu verwenden, sehe aber keinen Unterschied. Pip bleibt hängen, wenn ich versuche, den ursprünglich veröffentlichten Befehl auszuführen. Vielleicht mache ich etwas nicht richtig, aber ich habe dies sowohl im Standard-Docker-Image python:3.7
als auch nativ auf Macos in einer neuen virtuellen Umgebung versucht:
$ docker run --entrypoint=bash -it python:3.7
...
root<strong i="7">@24eb69007fc3</strong>:/# git clone https://github.com/pypa/pip.git
Cloning into 'pip'...
...
root<strong i="8">@24eb69007fc3</strong>:/# cd pip/
root<strong i="9">@24eb69007fc3</strong>:/pip# pip install -e .
...
Successfully installed pip
root<strong i="10">@24eb69007fc3</strong>:/pip# git branch -v
* master 00e531a16 Merge pull request #9017 from pradyunsg/backtracking-messaging
root<strong i="11">@24eb69007fc3</strong>:/pip# pip list
Package Version Location
---------- --------- --------
pip 20.3.dev0 /pip/src
setuptools 50.3.2
wheel 0.35.1
root<strong i="12">@24eb69007fc3</strong>:/pip# pip install --use-feature=2020-resolver "google-api-core>1.18.0,<1.21.0" "google-cloud-monitoring>=2.0.0"
Collecting google-api-core<1.21.0,>1.18.0
Using cached google_api_core-1.20.1-py2.py3-none-any.whl (90 kB)
Requirement already satisfied: setuptools>=34.0.0 in /usr/local/lib/python3.7/site-packages (from google-api-core<1.21.0,>1.18.0) (50.3.2)
Collecting google-cloud-monitoring>=2.0.0
Using cached google_cloud_monitoring-2.0.0-py2.py3-none-any.whl (287 kB)
Collecting pytz
Using cached pytz-2020.1-py2.py3-none-any.whl (510 kB)
Collecting googleapis-common-protos<2.0dev,>=1.6.0
Using cached googleapis_common_protos-1.52.0-py2.py3-none-any.whl (100 kB)
Collecting requests<3.0.0dev,>=2.18.0
Using cached requests-2.24.0-py2.py3-none-any.whl (61 kB)
Collecting protobuf>=3.12.0
Using cached protobuf-3.13.0-cp37-cp37m-manylinux1_x86_64.whl (1.3 MB)
Requirement already satisfied: setuptools>=34.0.0 in /usr/local/lib/python3.7/site-packages (from google-api-core<1.21.0,>1.18.0) (50.3.2)
Collecting six>=1.10.0
Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting google-auth<2.0dev,>=1.14.0
Using cached google_auth-1.22.1-py2.py3-none-any.whl (114 kB)
Requirement already satisfied: setuptools>=34.0.0 in /usr/local/lib/python3.7/site-packages (from google-api-core<1.21.0,>1.18.0) (50.3.2)
Collecting proto-plus>=1.4.0
Using cached proto-plus-1.11.0.tar.gz (44 kB)
Collecting libcst>=0.2.5
Using cached libcst-0.3.13-py3-none-any.whl (502 kB)
Collecting google-api-core[grpc]<2.0.0dev,>=1.22.2
Using cached google_api_core-1.23.0-py2.py3-none-any.whl (91 kB)
Using cached google_api_core-1.22.4-py2.py3-none-any.whl (91 kB)
Using cached google_api_core-1.22.3-py2.py3-none-any.whl (91 kB)
Using cached google_api_core-1.22.2-py2.py3-none-any.whl (91 kB)
INFO: pip is looking at multiple versions of this package to determine which version is compatible with other requirements. This could take a while.
Collecting libcst>=0.2.5
Using cached libcst-0.3.12-py3-none-any.whl (501 kB)
Using cached libcst-0.3.11-py3-none-any.whl (501 kB)
Using cached libcst-0.3.10-py3-none-any.whl (498 kB)
Using cached libcst-0.3.9-py3-none-any.whl (496 kB)
Using cached libcst-0.3.8-py3-none-any.whl (488 kB)
Using cached libcst-0.3.7-py3-none-any.whl (487 kB)
Using cached libcst-0.3.6-py3-none-any.whl (481 kB)
INFO: pip is looking at multiple versions of this package to determine which version is compatible with other requirements. This could take a while.
Using cached libcst-0.3.5-py3-none-any.whl (479 kB)
Using cached libcst-0.3.4-py3-none-any.whl (476 kB)
Using cached libcst-0.3.3-py3-none-any.whl (465 kB)
Using cached libcst-0.3.2-py3-none-any.whl (460 kB)
Using cached libcst-0.3.1-py3-none-any.whl (445 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime.If you want to abort this run, you can press Ctrl + C to do so.To improve how pip performs, tell us what happened here: https://pip.pypa.io/surveys/backtracking
Using cached libcst-0.3.0-py3-none-any.whl (433 kB)
Using cached libcst-0.2.7-py3-none-any.whl (431 kB)
Using cached libcst-0.2.6-py3-none-any.whl (430 kB)
Using cached libcst-0.2.5-py3-none-any.whl (368 kB)
INFO: pip is looking at multiple versions of this package to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of this package to determine which version is compatible with other requirements. This could take a while.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime.If you want to abort this run, you can press Ctrl + C to do so.To improve how pip performs, tell us what happened here: https://pip.pypa.io/surveys/backtracking
und dann bleibt es stecken. Ich lasse es etwa 30 Minuten ruhen, bevor ich abbreche.
Es scheint auch, dass dies nicht nur auf 20.2.4 beschränkt ist. Ich konnte das gleiche Endlosschleifenproblem in anderen Versionen von 20.2 (jede Version mit dem Flag 2020-resolver
) mit dem folgenden Befehl verursachen (etwas anders als der oben veröffentlichte):
pip install --use-feature=2020-resolver "apache-beam[gcp]==2.25.0" google-api-core==1.20.1
Danke @DanSimon! Ich kann mit dem Beispiel apache-beam[gcp]
reproduzieren (mit einem kleinen Patch, um die Protokollierung der Aktionen des Resolvers zu verbessern):
$ pip install --use-feature=2020-resolver "apache-beam[gcp]==2.25.0" google-api-core==1.20.1
Collecting apache-beam[gcp]==2.25.0
Using cached apache_beam-2.25.0-cp38-cp38-manylinux2010_x86_64.whl (10.3 MB)
Collecting google-api-core==1.20.1
Using cached google_api_core-1.20.1-py2.py3-none-any.whl (90 kB)
Requirement already satisfied: setuptools>=34.0.0 in ./pythonenv3.8/lib/python3.8/site-packages (from google-api-core==1.20.1) (41.2.0)
Collecting numpy<2,>=1.14.3
Using cached numpy-1.19.2-cp38-cp38-manylinux2010_x86_64.whl (14.5 MB)
Collecting future<1.0.0,>=0.18.2
Using cached future-0.18.2.tar.gz (829 kB)
Collecting pymongo<4.0.0,>=3.8.0
Using cached pymongo-3.11.0-cp38-cp38-manylinux2014_x86_64.whl (530 kB)
Collecting protobuf<4,>=3.12.2
Using cached protobuf-3.13.0-cp38-cp38-manylinux1_x86_64.whl (1.3 MB)
Requirement already satisfied: setuptools>=34.0.0 in ./pythonenv3.8/lib/python3.8/site-packages (from google-api-core==1.20.1) (41.2.0)
Collecting pydot<2,>=1.2.0
Using cached pydot-1.4.1-py2.py3-none-any.whl (19 kB)
Collecting python-dateutil<3,>=2.8.0
Using cached python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
Collecting typing-extensions<3.8.0,>=3.7.0
Using cached typing_extensions-3.7.4.3-py3-none-any.whl (22 kB)
Collecting pyarrow<0.18.0,>=0.15.1
Using cached pyarrow-0.17.1-cp38-cp38-manylinux2014_x86_64.whl (63.8 MB)
Collecting httplib2<0.18.0,>=0.8
Using cached httplib2-0.17.4-py3-none-any.whl (95 kB)
Collecting crcmod<2.0,>=1.7
Using cached crcmod-1.7.tar.gz (89 kB)
Collecting mock<3.0.0,>=1.0.1
Using cached mock-2.0.0-py2.py3-none-any.whl (56 kB)
Collecting hdfs<3.0.0,>=2.1.0
Using cached hdfs-2.5.8.tar.gz (41 kB)
Collecting requests<3.0.0,>=2.24.0
Using cached requests-2.24.0-py2.py3-none-any.whl (61 kB)
Collecting grpcio<2,>=1.29.0
Using cached grpcio-1.33.2-cp38-cp38-manylinux2014_x86_64.whl (3.8 MB)
Collecting avro-python3!=1.9.2,<1.10.0,>=1.8.1
Using cached avro-python3-1.9.2.1.tar.gz (37 kB)
Collecting dill<0.3.2,>=0.3.1.1
Using cached dill-0.3.1.1.tar.gz (151 kB)
Collecting fastavro<2,>=0.21.4
Using cached fastavro-1.0.0.post1-cp38-cp38-manylinux2014_x86_64.whl (1.7 MB)
Collecting pytz>=2018.3
Using cached pytz-2020.1-py2.py3-none-any.whl (510 kB)
Collecting oauth2client<5,>=2.0.1
Using cached oauth2client-4.1.3-py2.py3-none-any.whl (98 kB)
Collecting google-cloud-build<3,>=2.0.0
Using cached google_cloud_build-2.0.0-py2.py3-none-any.whl (67 kB)
Collecting google-auth<2,>=1.18.0
Using cached google_auth-1.22.1-py2.py3-none-any.whl (114 kB)
Requirement already satisfied: setuptools>=34.0.0 in ./pythonenv3.8/lib/python3.8/site-packages (from google-api-core==1.20.1) (41.2.0)
Collecting google-apitools<0.5.32,>=0.5.31
Using cached google-apitools-0.5.31.tar.gz (173 kB)
Collecting google-cloud-spanner<2,>=1.13.0
Using cached google_cloud_spanner-1.19.1-py2.py3-none-any.whl (255 kB)
Collecting google-cloud-dlp<2,>=0.12.0
Using cached google_cloud_dlp-1.0.0-py2.py3-none-any.whl (169 kB)
Collecting grpcio-gcp<1,>=0.2.2
Using cached grpcio_gcp-0.2.2-py2.py3-none-any.whl (9.4 kB)
Collecting google-cloud-language<2,>=1.3.0
Using cached google_cloud_language-1.3.0-py2.py3-none-any.whl (83 kB)
Collecting google-cloud-core<2,>=0.28.1
Using cached google_cloud_core-1.4.3-py2.py3-none-any.whl (27 kB)
Collecting google-cloud-videointelligence<2,>=1.8.0
Using cached google_cloud_videointelligence-1.16.0-py2.py3-none-any.whl (183 kB)
Collecting google-cloud-datastore<2,>=1.7.1
Using cached google_cloud_datastore-1.15.3-py2.py3-none-any.whl (134 kB)
Collecting cachetools<5,>=3.1.0
Using cached cachetools-4.1.1-py3-none-any.whl (10 kB)
Collecting google-cloud-pubsub<2,>=0.39.0
Using cached google_cloud_pubsub-1.7.0-py2.py3-none-any.whl (144 kB)
Collecting google-cloud-bigquery<2,>=1.6.0
Using cached google_cloud_bigquery-1.28.0-py2.py3-none-any.whl (187 kB)
Using cached google_cloud_bigquery-1.27.2-py2.py3-none-any.whl (172 kB)
Using cached google_cloud_bigquery-1.26.1-py2.py3-none-any.whl (170 kB)
Using cached google_cloud_bigquery-1.26.0-py2.py3-none-any.whl (170 kB)
Using cached google_cloud_bigquery-1.25.0-py2.py3-none-any.whl (169 kB)
Collecting google-cloud-vision<2,>=0.38.0
Using cached google_cloud_vision-1.0.0-py2.py3-none-any.whl (435 kB)
Collecting google-cloud-bigtable<2,>=0.31.1
Using cached google_cloud_bigtable-1.5.1-py2.py3-none-any.whl (266 kB)
Collecting six>=1.10.0
Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting googleapis-common-protos<2.0dev,>=1.6.0
Using cached googleapis_common_protos-1.52.0-py2.py3-none-any.whl (100 kB)
Collecting pyparsing>=2.1.4
Using cached pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
Collecting pbr>=0.11
Using cached pbr-5.5.1-py2.py3-none-any.whl (106 kB)
Collecting docopt
Using cached docopt-0.6.2.tar.gz (25 kB)
Collecting certifi>=2017.4.17
Using cached certifi-2020.6.20-py2.py3-none-any.whl (156 kB)
Collecting chardet<4,>=3.0.2
Using cached chardet-3.0.4-py2.py3-none-any.whl (133 kB)
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1
Using cached urllib3-1.25.11-py2.py3-none-any.whl (127 kB)
Collecting idna<3,>=2.5
Using cached idna-2.10-py2.py3-none-any.whl (58 kB)
Collecting pyasn1-modules>=0.0.5
Using cached pyasn1_modules-0.2.8-py2.py3-none-any.whl (155 kB)
Collecting rsa>=3.1.4
Using cached rsa-4.6-py3-none-any.whl (47 kB)
Collecting pyasn1>=0.1.7
Using cached pyasn1-0.4.8-py2.py3-none-any.whl (77 kB)
Collecting google-api-core[grpc]<2.0.0dev,>=1.22.0
Using cached google_api_core-1.23.0-py2.py3-none-any.whl (91 kB)
Using cached google_api_core-1.22.4-py2.py3-none-any.whl (91 kB)
Using cached google_api_core-1.22.3-py2.py3-none-any.whl (91 kB)
Using cached google_api_core-1.22.2-py2.py3-none-any.whl (91 kB)
Using cached google_api_core-1.22.1-py2.py3-none-any.whl (91 kB)
Using cached google_api_core-1.22.0-py2.py3-none-any.whl (91 kB)
Backtracking pyasn1 0.4.8 LinkCandidate
INFO: pip is looking at multiple versions of this package to determine which version is compatible with other requirements. This could take a while.
Collecting pyasn1>=0.1.7
Downloading pyasn1-0.4.7-py2.py3-none-any.whl (76 kB)
|████████████████████████████████| 76 kB 2.7 MB/s
Backtracking pyasn1 0.4.7 LinkCandidate
Downloading pyasn1-0.4.6-py2.py3-none-any.whl (75 kB)
|████████████████████████████████| 75 kB 2.5 MB/s
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
INFO: pip is looking at multiple versions of this package to determine which version is compatible with other requirements. This could take a while.
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
INFO: pip is looking at multiple versions of this package to determine which version is compatible with other requirements. This could take a while.
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime.If you want to abort this run, you can press Ctrl + C to do so.To improve how pip performs, tell us what happened here: https://pip.pypa.io/surveys/backtracking
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
INFO: pip is looking at multiple versions of this package to determine which version is compatible with other requirements. This could take a while.
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime.If you want to abort this run, you can press Ctrl + C to do so.To improve how pip performs, tell us what happened here: https://pip.pypa.io/surveys/backtracking
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Backtracking pyasn1 0.4.7 LinkCandidate
Backtracking pyasn1 0.4.6 LinkCandidate
Backtracking rsa 4.6 LinkCandidate
Ich glaube, ich habe das Problem identifiziert. Fix eingereicht in sarugaku / resolvelib # 60, wo ich auch mein Verständnis für das Problem beschrieben habe.
@uranusjr Ich glaube, ich habe eine interne Möglichkeit, dieses Problem zu reproduzieren.
Wie kann ich Ihre PR testen? Ich bin nicht sicher, wie sich resolvelib
in pip
...
@romaingz Ich arbeite an einer PR, um die Änderungen zu übernehmen, damit die Leute sie testen können.
Ich habe einen gepatchten Pip an meine Gabel geschoben. Sie können mit testen
python -m pip install -U https://github.com/uranusjr/pip/archive/resolvelib-dev.zip
Ich kann diese Fehlermeldung aus dem obigen Beispiel apache-beam[gcp]
+ google-api-core
generieren:
ERROR: Cannot install apache-beam, apache-beam, apache-beam, apache-beam, apache-beam, apache-beam,
apache-beam, apache-beam, apache-beam, apache-beam, apache-beam, apache-beam, google-api-core==1.20.1,
google-api-core==1.20.1, google-api-core==1.20.1, google-api-core==1.20.1, google-api-core==1.20.1,
google-api-core==1.20.1, google-api-core[grpc] 1.22.0, google-api-core[grpc] 1.22.1,
google-api-core[grpc] 1.22.2, google-api-core[grpc] 1.22.3, google-api-core[grpc] 1.22.4 and
google-api-core[grpc] 1.23.0 because these package versions have conflicting dependencies.
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies
(Siehe # 8495 für Diskussionen zur Verbesserung der Nachricht. Lassen wir das jetzt.)
Ich habe jedoch festgestellt, dass die Fehlermeldung nicht konsistent ist, da die Reihenfolge der Anforderungen des Resolvers nicht deterministisch ist. Und ich kann keine unendliche Auflösung erzeugen, wenn ich eine deterministische Reihenfolge hinzufüge (und den Fix entferne) 😞
Was gestern den ganzen Tag versagte, hörte heute auf zu versagen (ohne den Patch von @uranusjr ).
Gibt es einen Startwert, den ich aus einem fehlgeschlagenen Versuch abrufen und bei einem anderen Versuch wiederverwenden könnte, um konsistente Ergebnisse zu erzielen?
Gibt es einen Startwert, den ich aus einem fehlgeschlagenen Versuch abrufen und bei einem anderen Versuch wiederverwenden könnte, um konsistente Ergebnisse zu erzielen?
Ich glaube nicht - es hängt wahrscheinlich von der Hash-Randomisierung ab, die Python durchführt (da die Sortierreihenfolgenlogik mehrere Elemente mit demselben Schlüssel ergab und dies in # 9100 behoben ist).
Diese Ausgabe hat mich heute über das Cheroot-Projekt gebissen. Ich habe cherrypy / cheroot @ 5de9b053 ausgecheckt , PIP_USE_FEATURE=2020-resolver
und tox
und es schien zu hängen. Ich habe es abgebrochen, bereinigt und mit tox -vvv
neu gestartet, und ich konnte sehen, wie Nachrichten über die Installation von Pytest und Coverage (unter anderem) vorbeizischten. Löschen des Feature-Flags und Ausführen der Tests wie erwartet. Die von tox installierte Pip-Version ist 20.2.3 (obwohl 20.2.4 verfügbar ist). Ich hatte noch keine Gelegenheit, weitere Nachforschungen anzustellen.
In https://github.com/cherrypy/cheroot/tree/pypa-9011 habe ich zwei Commits festgeschrieben, eines, das das Problem repliziert, und eines, das das vorgeschlagene Update anwendet. Es scheint, dass nach dem Anwenden des vorgeschlagenen Fixes der Code nicht mehr hängt, sondern jetzt einen Konflikt erkennt. Das zeigt mir, dass das Update tatsächlich das Problem behebt.
Hmm. Vielleicht habe ich zu früh gesprochen. Ich stelle fest, dass einige Builds dieses Zweigs schnell fehlgeschlagen sind (~ 90s), andere Builds jedoch weiterhin ausgeführt werden (~ 20m). Auf meiner lokalen Workstation hängen einige Läufe, während andere abgeschlossen sind.
Sie sind wahrscheinlich auch von dem unbestimmten Problem betroffen (behoben in # 9100). Können Sie versuchen, das Hang-Problem mit dem Master zu reproduzieren (was meiner Meinung nach durchweg entweder fehlschlagen oder erfolgreich sein sollte)?
Bestätigt - Wenn Sie unter Pip Master laufen, hängen die Tests
Vielen Dank! Ich habe es geschafft, die problematische Anforderung auf zu beschränken
pytest-mock>=1.11.0
pytest-sugar>=0.9.3
pytest-testmon<1.0.0
coverage==5.3
Wenn Sie eines dieser Elemente und den Resolver entfernen, kann eine Lösung erstellt werden. Ich werde versuchen, einen Testfall zu erstellen und von dort aus zu arbeiten (hoffentlich während der Woche).
Hinweis (zu sich selbst): Meine aktuelle Hypothese lautet, dass dieses Problem ausgelöst werden kann, wenn der Resolver mehr als einen nicht zusammenhängenden Konflikt sieht. Es würde einen sehen, dafür zurückverfolgen, den anderen sehen, dafür zurückverfolgen und den ersten erneut treffen.
Es ist erwähnenswert, dass ich denke, dass diese Fehler etwas mit Extras zu tun haben und dass Vorabversionen in den Anforderungen erwähnt werden. Dies ist in meinem Fall passiert, als ich eine Endlosschleife zwischen einem Paket und einem Paket-Plugin hatte. Ich konnte es umgehen, indem ich Vorabversionen vermeidete, was ebenfalls empfohlen wird, aber ich befürchte, dass ich diesen Fehler in den letzten 3 Monaten mindestens dreimal und nur einmal in meinem Garten gefunden habe.
Leute hier könnten an diesem Update interessiert sein.
Dies ist jetzt einer der beiden Hauptblocker für die Veröffentlichung von Pip 20.3, nur zu Ihrer Information für Leute, die lesen.
Update: Ein Fix dafür wurde zusammengestellt. pip 20.3 (das den Fix enthalten sollte) wird wahrscheinlich bald erscheinen, aber ich habe meine Gabel ( in diesem Kommentar erwähnt ) aktualisiert, um sie aufzunehmen. Probieren Sie es einfach aus und berichten Sie, ob es das Problem tatsächlich löst!
Dieser von "resolvelib-dev" vorgeschlagene Patch löst meinen eigenen Fall mit unendlicher Auflösung https://github.com/pypa/pip/issues/9112#issuecomment -735222069
Ich bekomme eine Endlosschleife, die versucht, die folgenden requirements.txt
mit pip==20.3
in eine neue Python-Version 3.8.5 von venv auf dem Mac zu installieren:
tensorboard==2.2.2
torch==1.7.0
tqdm>=4.54
nltk==3.5.0
transformers==3.5.0
tokenizers==0.9.4
jsonlines>=1.2
sacrebleu>=1.4
pytest>=6.1
pytest-cov>=2.10
codecov>=2.1
flake8>=3.8
black==20.8b1
Die Installation bleibt schließlich in einer Schleife hängen, wobei die folgende Ausgabe wiederholt wird:
Requirement already satisfied: typing-extensions>=3.7.4 in ./testenv/lib/python3.8/site-packages (from black==20.8b1->-r requirements.txt (line 15)) (3.7.4.3)
Requirement already satisfied: regex>=2020.1.8 in ./testenv/lib/python3.8/site-packages (from black==20.8b1->-r requirements.txt (line 15)) (2020.11.13)
Requirement already satisfied: setuptools>=41.0.0 in ./testenv/lib/python3.8/site-packages (from tensorboard==2.2.2->-r requirements.txt (line 1)) (44.0.0)
Ausgabe von 20.2.4
mit aktiviertem --use-feature=2020-resolver
:
ERROR: Cannot install tokenizers==0.9.4 and transformers 3.5.0 because these package versions have conflicting dependencies.
.. aber die Installation wird beendet.
Bearbeiten: Behebung des Konflikts durch die Installation von transformers==4.0.0
OK.
Wiedereröffnung.
Auch darauf stoßen.
Hier ist eine Anforderungsdatei, die sie für mich mit pip 20.3 reproduziert
pip --version
pip 20.3 from /home/elijah/venvs/pipresolve/lib64/python3.8/site-packages/pip (python 3.8)
boto
boto3
botocore
cryptography
elasticsearch
gcloud
google-api-python-client
junit-xml
junit2html
junitparser
kubernetes>=8.0.0,<9.0.0
openshift==0.8.9
Mit 20.2.4 hat die Installation den Fehler:
openshift 0.8.9 requires urllib3<1.25, but you'll have urllib3 1.26.2 which is incompatible.
aber die Installation ist abgeschlossen
@ Tomhoskings Fall gibt mir schließlich
ERROR: Cannot install -r r.txt (line 6) and tokenizers==0.9.4 because these package versions have conflicting dependencies.
The conflict is caused by:
The user requested tokenizers==0.9.4
transformers 3.5.0 depends on tokenizers==0.9.3
To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies
Ich habe den zweiten noch nicht fertiggestellt, erwarte aber, dass er auch zu einem eventuellen Fehler führt, der an der Ausgabe gemessen wird.
In beiden Fällen scheint die Ausgabe hängen zu bleiben, da immer wieder dieselben Pakete angezeigt wurden. Bei genauer Betrachtung spuckte der Resolver jedoch gelegentlich verschiedene Dinge aus, was auf Fortschritt hinweist.
@ tomhoskings Beispiel:
Downloading codecov-2.1.5-py2.py3-none-any.whl (16 kB)
(a ton of setuptools and wheel lines)
Downloading codecov-2.1.4-py2.py3-none-any.whl (16 kB)
(a ton of setuptools and wheel lines)
Downloading codecov-2.1.3.tar.gz (18 kB)
(goes on and on)
@ kdelees Beispiel:
Using cached junit-xml-1.8.tar.gz (10.0 kB)
(a ton of setuptools lines)
Using cached junit-xml-1.7.tar.gz (9.1 kB)
(a ton of setuptools lines)
Downloading junit-xml-1.6.tar.gz (9.1 kB)
(...)
Ich glaube also nicht, dass der Resolver einen logischen Fehler enthält, nur dass die Ausgabe von pip keine gute Arbeit leistet, um auszudrücken, wie sie (sehr geringfügig) verschiedene Dinge versucht.
@ kdelees Beispiel:
Ich glaube also nicht, dass der Resolver einen logischen Fehler enthält, nur dass die Ausgabe von pip keine gute Arbeit leistet, um auszudrücken, wie sie (sehr geringfügig) verschiedene Dinge versucht.
Das ist glaubwürdig. Obwohl dies kein Fall von "unendlicher" Rekursion ist, wird immer noch endlich mehr ausprobiert, als ich erwarten kann (derzeit läuft ein Job, der mehr als 3 Stunden lang in der Pip-Installation geloopt wurde). und sagt mir nicht wirklich, was falsch ist. Klingt so, als wäre https://github.com/pypa/pip/issues/9185 eine gute Idee
Vielen Dank für die Überprüfung von @uranusjr! Ein bisschen wie @kdelee habe ich dies gefunden, weil ein CI-Workflow abgelaufen ist. Eine Möglichkeit, schneller oder mit weniger übermäßiger Ausgabe zu versagen, wäre großartig :)
Die zu diesem Zeitpunkt eingehenden Berichte unterscheiden sich von dem, wofür dies ursprünglich vorgesehen war (und was als Release-Blocker für 20.3 verfolgt wurde).
Ich werde dies zugunsten von # 9187 schließen, da ich 20.2.4 vs 20.3-Berichte in separaten Ausgaben aufbewahren möchte.
Hilfreichster Kommentar
Vielen Dank! Ich habe es geschafft, die problematische Anforderung auf zu beschränken
Wenn Sie eines dieser Elemente und den Resolver entfernen, kann eine Lösung erstellt werden. Ich werde versuchen, einen Testfall zu erstellen und von dort aus zu arbeiten (hoffentlich während der Woche).
Hinweis (zu sich selbst): Meine aktuelle Hypothese lautet, dass dieses Problem ausgelöst werden kann, wenn der Resolver mehr als einen nicht zusammenhängenden Konflikt sieht. Es würde einen sehen, dafür zurückverfolgen, den anderen sehen, dafür zurückverfolgen und den ersten erneut treffen.