Bonjour,
Mon CI entre en résolution infinie lors de la tentative d'installation des dépendances d'un projet pour les tests:
pip install -e .[test] --use-feature=2020-resolver -i https://artifactory.company.com/api/pypi/pypi/simple
Production
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)
Je reçois les 4 derniÚres lignes qui se répÚtent pour toujours:
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)
Information additionnelle
Dans la sortie ci-dessus, PIP_OPTS
est défini sur --use-feature=2020-resolver -i https://artifactory.company.com/api/pypi/pypi/simple
.
Nous utilisons un index hébergé par une entreprise qui ne présente aucun problÚme avec pip==20.2.3
.
Salut! Merci d'avoir signalé ce problÚme! Pourriez-vous partager les exigences que pip tente d'installer? Ce serait dans le setup.py/pyproject.toml pour le projet concerné.
Les dépendances "publiques" sont:
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',]},
cependant, comme vous pouvez le voir, nous avons plusieurs bibliothÚques internes qui sont également nécessaires.
Voici un pip list
de quelle version 20.2.3
installe au cas oĂč cela aiderait:
$ 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
Je ne sais pas si cela finira par ĂȘtre pertinent, mais il peut ĂȘtre intĂ©ressant de noter que je _pre-pip install_ deprecation six toolz
, ce qui signifie que je fais:
pip install deprecation six toolz ${PIP_OPTS}
# some more pip installation using the new resolver
pip install -e .[test] ${PIP_OPTS}
Merci d'avoir partagé ça. Cependant, ces informations ne sont toujours pas suffisantes pour reproduire ce problÚme. :(
J'aurais essentiellement besoin du mappage complet de (package-name, version): [dependencies]
que pip voit pendant le processus de résolution pour pouvoir déboguer cela, et je ne peux évidemment pas rechercher les dépendances de vos packages internes. ;)
Alors, quelques questions connexes:
.
au lieu de .[test]
(c'est-à -dire sans le test supplémentaire)?J'aurais essentiellement besoin de recréer / voir quel est l'état interne du résolveur, quand il est bloqué, que nous n'imprimons / ne journalisons nulle part pour un tas de raisons.
D'accord, j'ai essayé de reproduire le problÚme localement sans succÚs.
J'ai essayé de reproduire cela dans notre CI sur une autre branche et encore une fois, cela n'a pas échoué.
Je suis donc retourné à la branche d'origine qui avait des problÚmes plus tÎt dans la journée et je suis revenu à 20.2.4
et il a réussi à résoudre les dépendances cette fois ...
Cela pourrait-il ĂȘtre un problĂšme de mise en cache ou autre?
Notre CI fonctionne avec les coureurs k8s donc je doute que cela puisse ĂȘtre le cas.
Dois-je fermer et rouvrir si cela se produit Ă nouveau?
Cela pourrait-il ĂȘtre un problĂšme de mise en cache ou autre?
pip ne met rien en cache pendant la rĂ©solution des dĂ©pendances - uniquement les E / S rĂ©seau. Je ne pense pas que ça pourrait ĂȘtre ça.
Dois-je fermer et rouvrir si cela se produit Ă nouveau?
SĂ»r! Ăa marche pour moi. Si vous ĂȘtes capable de trouver un reproducteur, ce serait gĂ©nial!
Hé, je vois aussi un problÚme similaire qui a soudainement commencé il y a un jour.
Sur pip 20.2.4, je suis capable de reproduire cela avec juste
pip install --use-feature=2020-resolver "google-api-core>1.18.0,<1.21.0" "google-cloud-monitoring>=2.0.0"
Le comportement semble un peu non dĂ©terministe, mais Ă chaque fois, il commencera Ă tĂ©lĂ©charger de nombreuses versions (peut-ĂȘtre toutes les versions!) D'une dĂ©pendance et restera bloquĂ© dans une boucle Requirement already satisfied
ou semble simplement se figer complĂštement. Ceci est un exemple rĂ©sumĂ©, mais nous avons eu un build CI bloquĂ© pendant 6 heures avant d'ĂȘtre tuĂ©.
Notez que les deux bibliothĂšques que j'essaie d'installer provoquent en fait un conflit de version et si je laisse tomber le --use-feature=2020-resolver
j'obtiens un message d'erreur normal:
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.
aussi si je passe Ă pip 20.2.3 (et utilise le 2020-resolver
), j'obtiens aussi rapidement une erreur de conflit de dépendance.
Si je change l'exigence ci-dessus en google-cloud-monitoring<2.0.0
cela fonctionne bien, avec et sans le 2020-resolver
J'espĂšre que cela t'aides
Je viens de rencontrer cela aussi - j'ai exécuté le nouveau résolveur contre un fichier requirements.txt
existant (assez gros) et il a fini par se retrouver dans une boucle infinie de Requirement already satisfied
.
Voici mes Ă©tapes pour reproduire: https://gist.github.com/simonw/c53ad97ac2cd495e741b52f88d22b45d
Version plus courte: J'ai exécuté pip install --use-feature=2020-resolver -r requirements.txt
sur ce fichier: https://gist.githubusercontent.com/simonw/c53ad97ac2cd495e741b52f88d22b45d/raw/e09640304fcdf1990844f8ff8ecc92ef654d21b7/requirements.txt
Courir sans le drapeau --use-feature=
me donne ceci:
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.
Bien que curieusement, le problÚme de la boucle infinie n'ait pas mentionné ces packages - cela ressemblait à ceci:
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)
...
J'ai résolu mon problÚme en remplaçant toutes mes exigences ~=
exigences >=
.
Je pense donc qu'il y a un bogue ici, mais c'est un bogue d'interface utilisateur: les exigences de boucle infinie semblent avoir Ă©tĂ© dĂ©clenchĂ©es par le conflit de dĂ©pendance qui a montrĂ© dans l'avertissement, mais l'erreur elle-mĂȘme (boucle infinie sur Requirement already satisfied
pour certains paquet non lié) était vraiment déroutant.
Par conversation lors d' une rĂ©union cette semaine , @pradyunsg doit approfondir cette question - l'aide des autres serait Ă©galement la bienvenue ( @pfmoore et @uranusjr au cas oĂč vous auriez un moment pour aider).
@pradyunsg est-ce quelque chose que tu pourrais piquer mardi?
Il est peu probable que je dispose de la bande passante Ă court terme, mais je pourrais y jeter un coup d'Ćil quand j'ai du temps libre.
En utilisant la branche principale actuelle, tous les reproducteurs échouent pratiquement immédiatement. Je les ai exécutés dans un virtualenv propre sur une machine virtuelle Ubuntu, avec la branche principale de pip installée en mode modifiable avec setuptools 41.2.0.
@DanSimon « s 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
@simonw « s 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
J'ai essayĂ© d'utiliser la derniĂšre branche principale mais je ne vois aucune diffĂ©rence, pip se bloque toujours lorsque j'essaye d'exĂ©cuter la commande que j'ai publiĂ©e Ă l'origine. Peut-ĂȘtre que je ne fais pas quelque chose de bien, mais j'ai essayĂ© cela Ă la fois dans l'image docker standard python:3.7
et nativement sur macos dans une nouvelle virtualenv:
$ 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
et puis il se coince. Je l'ai laissé reposer environ 30 minutes avant d'annuler.
En outre, il semble que cela ne soit pas limitĂ© Ă seulement 20.2.4. J'ai pu provoquer le mĂȘme problĂšme de boucle infinie dans d'autres versions de 20.2 (chaque version qui a le drapeau 2020-resolver
) avec la commande suivante (légÚrement différente de celle que j'ai publiée ci-dessus):
pip install --use-feature=2020-resolver "apache-beam[gcp]==2.25.0" google-api-core==1.20.1
Merci @DanSimon! Je suis capable de reproduire avec l'exemple apache-beam[gcp]
(avec un correctif mineur pour améliorer la journalisation des actions du résolveur):
$ 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
Je pense avoir identifiĂ© le problĂšme. Correctif soumis dans sarugaku / resolvelib # 60, oĂč j'ai Ă©galement dĂ©crit ma comprĂ©hension du problĂšme.
@uranusjr Je pense avoir une maniĂšre interne de reproduire ce problĂšme.
Comment puis-je tester votre PR? Je ne sais pas comment resolvelib
s'intĂšgre dans pip
...
@romaingz Je travaille sur un PR Ă pipi pour apporter les changements aux gens Ă tester.
J'ai poussé un pip rapiécé à ma fourchette. Vous pouvez tester avec
python -m pip install -U https://github.com/uranusjr/pip/archive/resolvelib-dev.zip
Je peux générer ce message d'erreur à partir de l'exemple ci-dessus apache-beam[gcp]
+ google-api-core
:
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
(Voir # 8495 pour des discussions sur l'amélioration du message, laissons cela pour l'instant.)
Cependant, j'ai trouvĂ© que le message d'erreur n'est pas cohĂ©rent, car la commande du rĂ©solveur essaie les exigences n'est pas dĂ©terministe. Et je ne peux pas gĂ©nĂ©rer une rĂ©solution infinie si j'ajoute un ordre dĂ©terministe (et supprime le correctif) đ
Donc ce qui a échoué toute la journée d'hier a cessé d'échouer aujourd'hui (sans le patch de @uranusjr ).
Y a-t-il une graine que je pourrais récupérer d'une tentative infructueuse et réutiliser sur d'autres tentatives afin de conserver des résultats cohérents?
Y a-t-il une graine que je pourrais récupérer d'une tentative infructueuse et réutiliser sur d'autres tentatives afin de conserver des résultats cohérents?
Je ne pense pas - cela dĂ©pend probablement de la randomisation de hachage que Python fait (puisque la logique de l'ordre de tri donnait plusieurs Ă©lĂ©ments avec la mĂȘme clĂ©, et cela est corrigĂ© dans # 9100).
Ce numéro m'a mordu aujourd'hui sur le projet cheroot. J'ai vérifié cherrypy / cheroot @ 5de9b053 , mis PIP_USE_FEATURE=2020-resolver
, et exécuté tox
et il a semblé se bloquer. Je l'ai annulé, nettoyé et redémarré avec tox -vvv
et je pouvais voir des messages siffler Ă propos de l'installation de pytest et de la couverture (entre autres). Effacer l'indicateur de fonctionnalitĂ© et les tests s'exĂ©cutent comme prĂ©vu. La version pip que tox installe est 20.2.3 (bien que 20.2.4 soit disponible). Je n'ai pas encore eu l'occasion d'enquĂȘter davantage.
Dans https://github.com/cherrypy/cheroot/tree/pypa-9011 , j'ai commis deux commits, l'un qui réplique le problÚme et l'autre qui applique le correctif proposé. Il semble qu'aprÚs l'application du correctif proposé, le code ne se bloque plus mais détecte maintenant un conflit. Cela m'indique que le correctif résout en fait le problÚme.
Hmm. Peut-ĂȘtre ai-je parlĂ© trop tĂŽt. Je remarque que certaines des versions de cette branche ont Ă©chouĂ© rapidement (~ 90s) mais que d'autres continuent de fonctionner (~ 20m). Sur mon poste de travail local, certaines exĂ©cutions se bloquent tandis que d'autres se terminent.
Vous ĂȘtes probablement Ă©galement concernĂ© par le problĂšme d'indĂ©termination (rĂ©solu dans # 9100). Pouvez-vous essayer si vous ĂȘtes capable de reproduire le problĂšme de blocage avec master (qui, je crois, devrait systĂ©matiquement Ă©chouer ou rĂ©ussir)?
Confirmé - l'exécution sous pip master entraßne le blocage fiable des tests.
Merci! J'ai rĂ©ussi Ă limiter l'exigence problĂ©matique dĂ©finie Ă
pytest-mock>=1.11.0
pytest-sugar>=0.9.3
pytest-testmon<1.0.0
coverage==5.3
La suppression de l'un de ces éléments et du résolveur serait en mesure de produire une solution. Je vais essayer de créer un cas de test et de travailler à partir de là (espérons-le pendant la semaine).
Remarque (pour moi-mĂȘme): mon hypothĂšse actuelle est que ce problĂšme peut ĂȘtre dĂ©clenchĂ© si le rĂ©solveur voit plus d'un conflit non liĂ©. Il en verrait un, revenir en arriĂšre pour cela, voir l'autre, revenir en arriĂšre pour cela et frapper Ă nouveau le premier.
Il convient de mentionner que je pense que ces bogues peuvent avoir quelque chose à voir avec les extras et mentionner les pré-versions dans les exigences. à cela, c'est ce qui s'est passé dans mon cas lorsque je me suis retrouvé avec une boucle sans fin entre un package et un package-plugin. J'ai pu contourner le problÚme en évitant les pré-versions, ce qui est également recommandé, mais j'ai peur d'avoir rencontré ce bug au moins 3 fois au cours des 3 derniers mois et une seule fois ... dans mon jardin.
Les gens ici peuvent ĂȘtre intĂ©ressĂ©s par cette mise Ă jour .
C'est maintenant l'un des deux principaux bloqueurs de la publication de pip 20.3, juste pour info pour les lecteurs.
Mise à jour: un correctif a été mis en place. pip 20.3 (qui devrait inclure le correctif) arrivera probablement bientÎt, mais j'ai mis à jour mon fork ( mentionné dans ce commentaire ) pour l'inclure. N'hésitez pas à l'essayer et à signaler si cela résout effectivement le problÚme!
Ce correctif proposé "resolvelib-dev" résout mon propre cas de résolution infinie https://github.com/pypa/pip/issues/9112#issuecomment -735222069
Je reçois une boucle infinie en essayant d'installer le requirements.txt
avec pip==20.3
dans un nouveau venv, python version 3.8.5 sur Mac:
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
L'installation est finalement bloquée dans une boucle, avec la sortie suivante répétée:
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)
Sortie de 20.2.4
avec --use-feature=2020-resolver
activé:
ERROR: Cannot install tokenizers==0.9.4 and transformers 3.5.0 because these package versions have conflicting dependencies.
.. mais l'installation se termine.
Edit: correction du conflit en exigeant l'installation de transformers==4.0.0
OK.
RĂ©ouverture.
Courir dans cela aussi.
Voici le fichier d'exigences qui me le reproduit Ă l'aide de pip 20.3
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
Avec 20.2.4, l'installation a l'erreur:
openshift 0.8.9 requires urllib3<1.25, but you'll have urllib3 1.26.2 which is incompatible.
mais l'installation est terminée
Le cas de @ tomhosking me donne finalement
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
Je n'ai pas terminé le second, mais je m'attends à ce qu'il entraßne également une erreur éventuelle à en juger par la sortie.
Dans les deux cas, la sortie semble bloquĂ©e car ils ont montrĂ© de maniĂšre rĂ©pĂ©titive les mĂȘmes packages encore et encore. Mais lorsqu'il est inspectĂ© de prĂšs, le rĂ©solveur crache trĂšs occasionnellement des choses diffĂ©rentes, indiquant des progrĂšs.
L'exemple de @ tomhosking:
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)
L'exemple de @ kdelee:
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)
(...)
Donc, je ne pense pas qu'il y ait une erreur logique dans le résolveur, seulement que la sortie de pip ne fait pas un bon travail pour exprimer comment il essaie (trÚs légÚrement) des choses différentes.
L'exemple de @ kdelee:
Donc, je ne pense pas qu'il y ait une erreur logique dans le résolveur, seulement que la sortie de pip ne fait pas un bon travail pour exprimer comment il essaie (trÚs légÚrement) des choses différentes.
C'est crĂ©dible, donc bien que ce ne soit peut-ĂȘtre pas un cas de rĂ©cursion "infinie", il essaie toujours plus que ce que je peux attendre (j'ai actuellement un travail en cours depuis plus de 3 heures en boucle dans l'installation de pip.) et ne me dit pas vraiment ce qui ne va pas. On dirait que https://github.com/pypa/pip/issues/9185 est une bonne idĂ©e
Merci d'avoir vérifié @uranusjr! Un peu comme @kdelee , j'ai trouvé cela parce qu'un flux de travail CI a expiré. Un moyen d'échouer plus rapidement ou avec une sortie moins excessive serait génial :)
Les rapports qui arrivent à ce moment sont différents de ce à quoi cela servait à l'origine (et de ce qu'il a suivi en tant que bloqueur de publication pour 20.3).
Je vais fermer cela en faveur de # 9187, car je souhaite conserver les rapports 20.2.4 contre 20.3 dans des numéros séparés.
Commentaire le plus utile
Merci! J'ai rĂ©ussi Ă limiter l'exigence problĂ©matique dĂ©finie Ă
La suppression de l'un de ces éléments et du résolveur serait en mesure de produire une solution. Je vais essayer de créer un cas de test et de travailler à partir de là (espérons-le pendant la semaine).
Remarque (pour moi-mĂȘme): mon hypothĂšse actuelle est que ce problĂšme peut ĂȘtre dĂ©clenchĂ© si le rĂ©solveur voit plus d'un conflit non liĂ©. Il en verrait un, revenir en arriĂšre pour cela, voir l'autre, revenir en arriĂšre pour cela et frapper Ă nouveau le premier.