Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dependency resolution is extremely slow #4924

Closed
3 tasks done
alecandido opened this issue Dec 21, 2021 · 29 comments
Closed
3 tasks done

Dependency resolution is extremely slow #4924

alecandido opened this issue Dec 21, 2021 · 29 comments
Labels
kind/bug Something isn't working as expected

Comments

@alecandido
Copy link

alecandido commented Dec 21, 2021

  • I am on the latest Poetry version.
  • I have searched the issues of this repo and believe that this is not a duplicate.
  • If an exception occurs when executing a command, I executed it again in debug mode (-vvv option).

Specs

  • OS version and name:
    OS: Linux 5.13 Ubuntu 21.10 21.10 (Impish Indri)
    CPU: (12) x64 Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
  • Poetry version: 1.1.12
pyproject.toml
[tool.poetry]
name = "package-name"
version = "0.1.0"
description = ""
authors = ["Your Name <[email protected]>"]

[tool.poetry.dependencies]
python = "^3.9"
numpy = "^1"

[tool.poetry.dev-dependencies]
pytest = "^5.2"
pdbpp = "^0.10.3"
black = "^21.9b0"
isort = "^5.9.3"
ipython = "^7.28.0"
pylint = "^2.11.1"

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
Internet connection
Testing download speed................................................................................
Download: 906.41 Mbit/s
Testing upload speed......................................................................................................
Upload: 292.53 Mbit/s

Issue

Just running poetry update took 15 minutes to do exactly nothing:

Updating dependencies
Resolving dependencies... (922.3s)

Writing lock file

No dependencies to install or update

Even more, for other packages with a few more dependencies, I've seen poetry running for more than one hour without completing (I killed).

In general, this behavior happens for all the sub-commands that potentially have to resolve dependencies, including add, update, but even install.

@alecandido alecandido added kind/bug Something isn't working as expected status/triage This issue needs to be triaged labels Dec 21, 2021
@Zethson
Copy link

Zethson commented Dec 24, 2021

I'd assume that the issue is numpy here. Poetry has to check too many versions.

@alecandido
Copy link
Author

Ok, I'm going to test, but for sure you have a point.

I'm not sure if I can pin the exact numpy version, since in a non-minimal example it's also a dependency of other dependencies...

@alecandido
Copy link
Author

alecandido commented Dec 24, 2021

Nope, even without numpy is taking long.

Moreover, using -vvv and watching the logs (meaning me watching the terminal), at some points it's completely stuck:

Logs up to stack (same pyproject.toml without numpy)
❯ time poetry install -vvv 
Updating dependencies
Resolving dependencies...
   1: fact: proj is 0.1.0
   1: derived: proj
   1: fact: proj depends on pytest (^5.2)
   1: fact: proj depends on pdbpp (^0.10.3)
   1: fact: proj depends on black (^21.9b0)
   1: fact: proj depends on isort (^5.9.3)
   1: fact: proj depends on ipython (^7.28.0)
   1: fact: proj depends on pylint (^2.11.1)
   1: fact: proj depends on pytest (^5.2)
   1: fact: proj depends on pdbpp (^0.10.3)
   1: fact: proj depends on black (^21.9b0)
   1: fact: proj depends on isort (^5.9.3)
   1: fact: proj depends on ipython (^7.28.0)
   1: fact: proj depends on pylint (^2.11.1)
   1: selecting proj (0.1.0)
   1: derived: pylint (>=2.11.1,<3.0.0)
   1: derived: ipython (>=7.28.0,<8.0.0)
   1: derived: isort (>=5.9.3,<6.0.0)
   1: derived: black (>=21.9b0,<22.0)
   1: derived: pdbpp (>=0.10.3,<0.11.0)
   1: derived: pytest (>=5.2,<6.0)
   1: fact: pdbpp (0.10.3) depends on fancycompleter (>=0.8)
   1: fact: pdbpp (0.10.3) depends on wmctrl (*)
   1: fact: pdbpp (0.10.3) depends on pygments (*)
   1: selecting pdbpp (0.10.3)
   1: derived: pygments
   1: derived: wmctrl
   1: derived: fancycompleter (>=0.8)
   1: selecting isort (5.10.1)
   1: fact: fancycompleter (0.9.1) depends on pyrepl (>=0.8.2)
   1: fact: fancycompleter (0.9.1) depends on pyreadline (*)
   1: selecting fancycompleter (0.9.1)
   1: derived: pyreadline
   1: derived: pyrepl (>=0.8.2)
   1: selecting pyrepl (0.9.0)
   1: fact: pylint (2.12.2) depends on platformdirs (>=2.2.0)
   1: fact: pylint (2.12.2) depends on astroid (>=2.9.0,<2.10)
   1: fact: pylint (2.12.2) depends on isort (>=4.2.5,<6)
   1: fact: pylint (2.12.2) depends on mccabe (>=0.6,<0.7)
   1: fact: pylint (2.12.2) depends on toml (>=0.9.2)
   1: fact: pylint (2.12.2) depends on typing-extensions (>=3.10.0)
   1: fact: pylint (2.12.2) depends on colorama (*)
   1: selecting pylint (2.12.2)
   1: derived: colorama
   1: derived: typing-extensions (>=3.10.0)
   1: derived: toml (>=0.9.2)
   1: derived: mccabe (>=0.6,<0.7)
   1: derived: astroid (>=2.9.0,<2.10)
   1: derived: platformdirs (>=2.2.0)
Next batch, before stuck again
   1: fact: ipython (7.30.1) depends on jedi (>=0.16)
   1: fact: ipython (7.30.1) depends on decorator (*)
   1: fact: ipython (7.30.1) depends on pickleshare (*)
   1: fact: ipython (7.30.1) depends on traitlets (>=4.2)
   1: fact: ipython (7.30.1) depends on prompt-toolkit (>=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0)
   1: fact: ipython (7.30.1) depends on pygments (*)
   1: fact: ipython (7.30.1) depends on backcall (*)
   1: fact: ipython (7.30.1) depends on matplotlib-inline (*)
   1: fact: ipython (7.30.1) depends on pexpect (>4.3)
   1: fact: ipython (7.30.1) depends on appnope (*)
   1: fact: ipython (7.30.1) depends on colorama (*)
   1: selecting ipython (7.30.1)
   1: derived: appnope
   1: derived: pexpect (>4.3)
   1: derived: matplotlib-inline
   1: derived: backcall
   1: derived: prompt-toolkit (>=2.0.0,!=3.0.0,!=3.0.1,<3.1.0)
   1: derived: traitlets (>=4.2)
   1: derived: pickleshare
   1: derived: decorator
   1: derived: jedi (>=0.16)
Network plot by btop (gracefully distorted by GitHub mono font...)
19K         ⢸⢸  ⡇   ⡇      ⢸⣿⡄            ⢸⣿⡇            ⣼⢸ ⢸           ⢸
            ⢸⢸  ⡇   ⡇      ⢸⣿⡇            ⢸⣿⡇            ⣿⢸ ⢸           ⢸
            ⢸⢸  ⡇  ⢀⡇      ⢸⣿⡇            ⢸⣿⡇            ⣿⢸ ⢸           ⢸
            ⢸⢸  ⡇  ⢸⡇     ⡇⢸⣿⡇    ⡆       ⢸⣿⡇            ⣿⢸ ⣼           ⢸
       ⢰    ⢸⢸  ⡇  ⢸⡇     ⡇⢸⣿⡇  ⡇ ⡇       ⢸⣿⡇            ⣿⢸ ⣿           ⢸
⣀⣀⣀⣀⣀⣄⣀⣸⣀⣀⣀⣰⣸⣼⣀⣀⣇⣀⣀⣸⣇⣀⣀⣆⣀⣀⣇⣸⣿⣇⣀⣀⣧⣀⣷⣀⣀⣀⣀⣀⣀⣀⣼⣿⣿⣀⣀⣀⣀⣠⣀⣀⣀⣀⣀⣄⣀⣿⣸⣀⣿⣄⣀⣀⣰⣀⣀⣀⣀⣀⣀⣀⣾
⠏⠋⠙⠉⠉⢹⠉⢹⠉⠙⠉⢹⢹⣿⠹⠉⣿⠙⠉⢹⡏⠉⠉⡟⠉⠉⡏⢹⣿⡟⠙⠙⡟⠉⡏⠉⠉⠉⠉⡟⠉⠉⢹⣿⣿⠙⠹⠙⠉⠉⡏⠉⠉⠉⠉⠋⠉⣿⢿⠹⣿⡟⠙⠉⠉⠉⠉⠉⠉⠋⠉⠉⢹
       ⢸   ⠸⢸⢹  ⡏  ⢸   ⠃   ⢸⣿⡇  ⡇ ⡇    ⠁  ⢸⣿⡿            ⣿⢸ ⣿⠇          ⢸
       ⢸    ⢸⢸  ⡇  ⢸       ⢸⣿⡇  ⠃         ⢸⣿⡇            ⣿⢸ ⣿           ⢸
            ⢸⢸  ⡇  ⠈       ⢸⣿⡇            ⢸⣿⡇            ⣿⢸ ⣿           ⢸
            ⢸⢸  ⡇          ⢸⣿⡇            ⢸⣿⡇            ⢻⢸ ⢻           ⢸
            ⢸⢸  ⠇          ⢸⣿⡇            ⢸⣿⡇            ⢸⢸ ⢸           ⢸
10K         ⢸⢸             ⢸⣿⡇            ⢸⣿⡇            ⢸⢸ ⢸           ⢸

@alecandido
Copy link
Author

More updates:

  • on the opposite of what someone guessed on Discord, I don't believe it's a lockfile problem, a new project with same dependencies resolves much faster (i.e. without lockfile) once the first one has been resolved
  • I guess than is somehow related to network fetching and cache
  • interestingly enough, sometimes if I kill the process and rerun, it advances a bit more; some other times instead, it blocks at a point where it was already stuck before, but that has been already passed in a former instance...

@item4
Copy link

item4 commented Dec 26, 2021

Same issue for me

base pyproject.toml content
[tool.poetry]
name = "project"
version = "0.1.0"
description = ""
authors = ["name <[email protected]>"]

[tool.poetry.dependencies]
python = "^3.10"
httpx = "^0.21.1"
lxml = "^4.7.1"
cssselect = "^1.1.0"
attrs = "^21.2.0"
more-itertools = "^8.12.0"
Pillow = "^8.4.0"

[tool.poetry.dev-dependencies]

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
shell works
$ poetry --version
Poetry (version 1.2.0a2)
$ rm poetry.lock
$ poetry install                                                
Updating dependencies
Resolving dependencies... (537.4s)

Writing lock file

Package operations: 14 installs, 0 updates, 0 removals

  • Installing idna (3.3)
  • Installing sniffio (1.2.0): Pending...

Hanging there and no more installation.

generated poetry.lock content
[[package]]
name = "anyio"
version = "3.4.0"
description = "High level compatibility layer for multiple asynchronous event loop implementations"
category = "main"
optional = false
python-versions = ">=3.6.2"

[package.dependencies]
idna = ">=2.8"
sniffio = ">=1.1"

[package.extras]
doc = ["sphinx-rtd-theme", "sphinx-autodoc-typehints (>=1.2.0)"]
test = ["coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "pytest (>=6.0)", "pytest-mock (>=3.6.1)", "trustme", "contextlib2", "uvloop (<0.15)", "mock (>=4)", "uvloop (>=0.15)"]
trio = ["trio (>=0.16)"]

[[package]]
name = "attrs"
version = "21.2.0"
description = "Classes Without Boilerplate"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"

[package.extras]
dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"]
docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"]
tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"]

[[package]]
name = "certifi"
version = "2021.10.8"
description = "Python package for providing Mozilla's CA Bundle."
category = "main"
optional = false
python-versions = "*"

[[package]]
name = "charset-normalizer"
version = "2.0.9"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
category = "main"
optional = false
python-versions = ">=3.5.0"

[package.extras]
unicode_backport = ["unicodedata2"]

[[package]]
name = "cssselect"
version = "1.1.0"
description = "cssselect parses CSS3 Selectors and translates them to XPath 1.0"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"

[[package]]
name = "h11"
version = "0.12.0"
description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
category = "main"
optional = false
python-versions = ">=3.6"

[[package]]
name = "httpcore"
version = "0.14.3"
description = "A minimal low-level HTTP client."
category = "main"
optional = false
python-versions = ">=3.6"

[package.dependencies]
anyio = ">=3.0.0,<4.0.0"
certifi = "*"
h11 = ">=0.11,<0.13"
sniffio = ">=1.0.0,<2.0.0"

[package.extras]
http2 = ["h2 (>=3,<5)"]

[[package]]
name = "httpx"
version = "0.21.1"
description = "The next generation HTTP client."
category = "main"
optional = false
python-versions = ">=3.6"

[package.dependencies]
certifi = "*"
charset-normalizer = "*"
httpcore = ">=0.14.0,<0.15.0"
rfc3986 = {version = ">=1.3,<2", extras = ["idna2008"]}
sniffio = "*"

[package.extras]
brotli = ["brotlicffi", "brotli"]
cli = ["click (>=8.0.0,<9.0.0)", "rich (>=10.0.0,<11.0.0)", "pygments (>=2.0.0,<3.0.0)"]
http2 = ["h2 (>=3,<5)"]

[[package]]
name = "idna"
version = "3.3"
description = "Internationalized Domain Names in Applications (IDNA)"
category = "main"
optional = false
python-versions = ">=3.5"

[[package]]
name = "lxml"
version = "4.7.1"
description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*"

[package.extras]
cssselect = ["cssselect (>=0.7)"]
html5 = ["html5lib"]
htmlsoup = ["beautifulsoup4"]
source = ["Cython (>=0.29.7)"]

[[package]]
name = "more-itertools"
version = "8.12.0"
description = "More routines for operating on iterables, beyond itertools"
category = "main"
optional = false
python-versions = ">=3.5"

[[package]]
name = "pillow"
version = "8.4.0"
description = "Python Imaging Library (Fork)"
category = "main"
optional = false
python-versions = ">=3.6"

[[package]]
name = "rfc3986"
version = "1.5.0"
description = "Validating URI References per RFC 3986"
category = "main"
optional = false
python-versions = "*"

[package.dependencies]
idna = {version = "*", optional = true, markers = "extra == \"idna2008\""}

[package.extras]
idna2008 = ["idna"]

[[package]]
name = "sniffio"
version = "1.2.0"
description = "Sniff out which async library your code is running under"
category = "main"
optional = false
python-versions = ">=3.5"

[metadata]
lock-version = "1.1"
python-versions = "^3.10"
content-hash = "e06d3b1d7b927edbc9dd0897734decbfbe56bddba7dd7ee5010032fd5acde810"

[metadata.files]
anyio = [
    {file = "anyio-3.4.0-py3-none-any.whl", hash = "sha256:2855a9423524abcdd652d942f8932fda1735210f77a6b392eafd9ff34d3fe020"},
    {file = "anyio-3.4.0.tar.gz", hash = "sha256:24adc69309fb5779bc1e06158e143e0b6d2c56b302a3ac3de3083c705a6ed39d"},
]
attrs = [
    {file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"},
    {file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"},
]
certifi = [
    {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"},
    {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"},
]
charset-normalizer = [
    {file = "charset-normalizer-2.0.9.tar.gz", hash = "sha256:b0b883e8e874edfdece9c28f314e3dd5badf067342e42fb162203335ae61aa2c"},
    {file = "charset_normalizer-2.0.9-py3-none-any.whl", hash = "sha256:1eecaa09422db5be9e29d7fc65664e6c33bd06f9ced7838578ba40d58bdf3721"},
]
cssselect = [
    {file = "cssselect-1.1.0-py2.py3-none-any.whl", hash = "sha256:f612ee47b749c877ebae5bb77035d8f4202c6ad0f0fc1271b3c18ad6c4468ecf"},
    {file = "cssselect-1.1.0.tar.gz", hash = "sha256:f95f8dedd925fd8f54edb3d2dfb44c190d9d18512377d3c1e2388d16126879bc"},
]
h11 = [
    {file = "h11-0.12.0-py3-none-any.whl", hash = "sha256:36a3cb8c0a032f56e2da7084577878a035d3b61d104230d4bd49c0c6b555a9c6"},
    {file = "h11-0.12.0.tar.gz", hash = "sha256:47222cb6067e4a307d535814917cd98fd0a57b6788ce715755fa2b6c28b56042"},
]
httpcore = [
    {file = "httpcore-0.14.3-py3-none-any.whl", hash = "sha256:9a98d2416b78976fc5396ff1f6b26ae9885efbb3105d24eed490f20ab4c95ec1"},
    {file = "httpcore-0.14.3.tar.gz", hash = "sha256:d10162a63265a0228d5807964bd964478cbdb5178f9a2eedfebb2faba27eef5d"},
]
httpx = [
    {file = "httpx-0.21.1-py3-none-any.whl", hash = "sha256:208e5ef2ad4d105213463cfd541898ed9d11851b346473539a8425e644bb7c66"},
    {file = "httpx-0.21.1.tar.gz", hash = "sha256:02af20df486b78892a614a7ccd4e4e86a5409ec4981ab0e422c579a887acad83"},
]
idna = [
    {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"},
    {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"},
]
lxml = [
    {file = "lxml-4.7.1-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:d546431636edb1d6a608b348dd58cc9841b81f4116745857b6cb9f8dadb2725f"},
    {file = "lxml-4.7.1-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6308062534323f0d3edb4e702a0e26a76ca9e0e23ff99be5d82750772df32a9e"},
    {file = "lxml-4.7.1-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:f76dbe44e31abf516114f6347a46fa4e7c2e8bceaa4b6f7ee3a0a03c8eba3c17"},
    {file = "lxml-4.7.1-cp27-cp27m-win32.whl", hash = "sha256:d5618d49de6ba63fe4510bdada62d06a8acfca0b4b5c904956c777d28382b419"},
    {file = "lxml-4.7.1-cp27-cp27m-win_amd64.whl", hash = "sha256:9393a05b126a7e187f3e38758255e0edf948a65b22c377414002d488221fdaa2"},
    {file = "lxml-4.7.1-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:50d3dba341f1e583265c1a808e897b4159208d814ab07530202b6036a4d86da5"},
    {file = "lxml-4.7.1-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:44f552e0da3c8ee3c28e2eb82b0b784200631687fc6a71277ea8ab0828780e7d"},
    {file = "lxml-4.7.1-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:e662c6266e3a275bdcb6bb049edc7cd77d0b0f7e119a53101d367c841afc66dc"},
    {file = "lxml-4.7.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:4c093c571bc3da9ebcd484e001ba18b8452903cd428c0bc926d9b0141bcb710e"},
    {file = "lxml-4.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:3e26ad9bc48d610bf6cc76c506b9e5ad9360ed7a945d9be3b5b2c8535a0145e3"},
    {file = "lxml-4.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:a5f623aeaa24f71fce3177d7fee875371345eb9102b355b882243e33e04b7175"},
    {file = "lxml-4.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7b5e2acefd33c259c4a2e157119c4373c8773cf6793e225006a1649672ab47a6"},
    {file = "lxml-4.7.1-cp310-cp310-win32.whl", hash = "sha256:67fa5f028e8a01e1d7944a9fb616d1d0510d5d38b0c41708310bd1bc45ae89f6"},
    {file = "lxml-4.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:b1d381f58fcc3e63fcc0ea4f0a38335163883267f77e4c6e22d7a30877218a0e"},
    {file = "lxml-4.7.1-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:38d9759733aa04fb1697d717bfabbedb21398046bd07734be7cccc3d19ea8675"},
    {file = "lxml-4.7.1-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:dfd0d464f3d86a1460683cd742306d1138b4e99b79094f4e07e1ca85ee267fe7"},
    {file = "lxml-4.7.1-cp35-cp35m-win32.whl", hash = "sha256:534e946bce61fd162af02bad7bfd2daec1521b71d27238869c23a672146c34a5"},
    {file = "lxml-4.7.1-cp35-cp35m-win_amd64.whl", hash = "sha256:6ec829058785d028f467be70cd195cd0aaf1a763e4d09822584ede8c9eaa4b03"},
    {file = "lxml-4.7.1-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:ade74f5e3a0fd17df5782896ddca7ddb998845a5f7cd4b0be771e1ffc3b9aa5b"},
    {file = "lxml-4.7.1-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:41358bfd24425c1673f184d7c26c6ae91943fe51dfecc3603b5e08187b4bcc55"},
    {file = "lxml-4.7.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:6e56521538f19c4a6690f439fefed551f0b296bd785adc67c1777c348beb943d"},
    {file = "lxml-4.7.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5b0f782f0e03555c55e37d93d7a57454efe7495dab33ba0ccd2dbe25fc50f05d"},
    {file = "lxml-4.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:490712b91c65988012e866c411a40cc65b595929ececf75eeb4c79fcc3bc80a6"},
    {file = "lxml-4.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:34c22eb8c819d59cec4444d9eebe2e38b95d3dcdafe08965853f8799fd71161d"},
    {file = "lxml-4.7.1-cp36-cp36m-win32.whl", hash = "sha256:2a906c3890da6a63224d551c2967413b8790a6357a80bf6b257c9a7978c2c42d"},
    {file = "lxml-4.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:36b16fecb10246e599f178dd74f313cbdc9f41c56e77d52100d1361eed24f51a"},
    {file = "lxml-4.7.1-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:a5edc58d631170de90e50adc2cc0248083541affef82f8cd93bea458e4d96db8"},
    {file = "lxml-4.7.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:87c1b0496e8c87ec9db5383e30042357b4839b46c2d556abd49ec770ce2ad868"},
    {file = "lxml-4.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:0a5f0e4747f31cff87d1eb32a6000bde1e603107f632ef4666be0dc065889c7a"},
    {file = "lxml-4.7.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:bf6005708fc2e2c89a083f258b97709559a95f9a7a03e59f805dd23c93bc3986"},
    {file = "lxml-4.7.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fc15874816b9320581133ddc2096b644582ab870cf6a6ed63684433e7af4b0d3"},
    {file = "lxml-4.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:0b5e96e25e70917b28a5391c2ed3ffc6156513d3db0e1476c5253fcd50f7a944"},
    {file = "lxml-4.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ec9027d0beb785a35aa9951d14e06d48cfbf876d8ff67519403a2522b181943b"},
    {file = "lxml-4.7.1-cp37-cp37m-win32.whl", hash = "sha256:9fbc0dee7ff5f15c4428775e6fa3ed20003140560ffa22b88326669d53b3c0f4"},
    {file = "lxml-4.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:1104a8d47967a414a436007c52f533e933e5d52574cab407b1e49a4e9b5ddbd1"},
    {file = "lxml-4.7.1-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:fc9fb11b65e7bc49f7f75aaba1b700f7181d95d4e151cf2f24d51bfd14410b77"},
    {file = "lxml-4.7.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:317bd63870b4d875af3c1be1b19202de34c32623609ec803b81c99193a788c1e"},
    {file = "lxml-4.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:610807cea990fd545b1559466971649e69302c8a9472cefe1d6d48a1dee97440"},
    {file = "lxml-4.7.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:09b738360af8cb2da275998a8bf79517a71225b0de41ab47339c2beebfff025f"},
    {file = "lxml-4.7.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6a2ab9d089324d77bb81745b01f4aeffe4094306d939e92ba5e71e9a6b99b71e"},
    {file = "lxml-4.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:eed394099a7792834f0cb4a8f615319152b9d801444c1c9e1b1a2c36d2239f9e"},
    {file = "lxml-4.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:735e3b4ce9c0616e85f302f109bdc6e425ba1670a73f962c9f6b98a6d51b77c9"},
    {file = "lxml-4.7.1-cp38-cp38-win32.whl", hash = "sha256:772057fba283c095db8c8ecde4634717a35c47061d24f889468dc67190327bcd"},
    {file = "lxml-4.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:13dbb5c7e8f3b6a2cf6e10b0948cacb2f4c9eb05029fe31c60592d08ac63180d"},
    {file = "lxml-4.7.1-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:718d7208b9c2d86aaf0294d9381a6acb0158b5ff0f3515902751404e318e02c9"},
    {file = "lxml-4.7.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:5bee1b0cbfdb87686a7fb0e46f1d8bd34d52d6932c0723a86de1cc532b1aa489"},
    {file = "lxml-4.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:e410cf3a2272d0a85526d700782a2fa92c1e304fdcc519ba74ac80b8297adf36"},
    {file = "lxml-4.7.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:585ea241ee4961dc18a95e2f5581dbc26285fcf330e007459688096f76be8c42"},
    {file = "lxml-4.7.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a555e06566c6dc167fbcd0ad507ff05fd9328502aefc963cb0a0547cfe7f00db"},
    {file = "lxml-4.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:adaab25be351fff0d8a691c4f09153647804d09a87a4e4ea2c3f9fe9e8651851"},
    {file = "lxml-4.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:82d16a64236970cb93c8d63ad18c5b9f138a704331e4b916b2737ddfad14e0c4"},
    {file = "lxml-4.7.1-cp39-cp39-win32.whl", hash = "sha256:59e7da839a1238807226f7143c68a479dee09244d1b3cf8c134f2fce777d12d0"},
    {file = "lxml-4.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:a1bbc4efa99ed1310b5009ce7f3a1784698082ed2c1ef3895332f5df9b3b92c2"},
    {file = "lxml-4.7.1-pp37-pypy37_pp73-macosx_10_14_x86_64.whl", hash = "sha256:0607ff0988ad7e173e5ddf7bf55ee65534bd18a5461183c33e8e41a59e89edf4"},
    {file = "lxml-4.7.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:6c198bfc169419c09b85ab10cb0f572744e686f40d1e7f4ed09061284fc1303f"},
    {file = "lxml-4.7.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:a58d78653ae422df6837dd4ca0036610b8cb4962b5cfdbd337b7b24de9e5f98a"},
    {file = "lxml-4.7.1-pp38-pypy38_pp73-macosx_10_14_x86_64.whl", hash = "sha256:e18281a7d80d76b66a9f9e68a98cf7e1d153182772400d9a9ce855264d7d0ce7"},
    {file = "lxml-4.7.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:8e54945dd2eeb50925500957c7c579df3cd07c29db7810b83cf30495d79af267"},
    {file = "lxml-4.7.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:447d5009d6b5447b2f237395d0018901dcc673f7d9f82ba26c1b9f9c3b444b60"},
    {file = "lxml-4.7.1.tar.gz", hash = "sha256:a1613838aa6b89af4ba10a0f3a972836128801ed008078f8c1244e65958f1b24"},
]
more-itertools = [
    {file = "more-itertools-8.12.0.tar.gz", hash = "sha256:7dc6ad46f05f545f900dd59e8dfb4e84a4827b97b3cfecb175ea0c7d247f6064"},
    {file = "more_itertools-8.12.0-py3-none-any.whl", hash = "sha256:43e6dd9942dffd72661a2c4ef383ad7da1e6a3e968a927ad7a6083ab410a688b"},
]
pillow = [
    {file = "Pillow-8.4.0-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:81f8d5c81e483a9442d72d182e1fb6dcb9723f289a57e8030811bac9ea3fef8d"},
    {file = "Pillow-8.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3f97cfb1e5a392d75dd8b9fd274d205404729923840ca94ca45a0af57e13dbe6"},
    {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb9fc393f3c61f9054e1ed26e6fe912c7321af2f41ff49d3f83d05bacf22cc78"},
    {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d82cdb63100ef5eedb8391732375e6d05993b765f72cb34311fab92103314649"},
    {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62cc1afda735a8d109007164714e73771b499768b9bb5afcbbee9d0ff374b43f"},
    {file = "Pillow-8.4.0-cp310-cp310-win32.whl", hash = "sha256:e3dacecfbeec9a33e932f00c6cd7996e62f53ad46fbe677577394aaa90ee419a"},
    {file = "Pillow-8.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:620582db2a85b2df5f8a82ddeb52116560d7e5e6b055095f04ad828d1b0baa39"},
    {file = "Pillow-8.4.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:1bc723b434fbc4ab50bb68e11e93ce5fb69866ad621e3c2c9bdb0cd70e345f55"},
    {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72cbcfd54df6caf85cc35264c77ede902452d6df41166010262374155947460c"},
    {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70ad9e5c6cb9b8487280a02c0ad8a51581dcbbe8484ce058477692a27c151c0a"},
    {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25a49dc2e2f74e65efaa32b153527fc5ac98508d502fa46e74fa4fd678ed6645"},
    {file = "Pillow-8.4.0-cp36-cp36m-win32.whl", hash = "sha256:93ce9e955cc95959df98505e4608ad98281fff037350d8c2671c9aa86bcf10a9"},
    {file = "Pillow-8.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:2e4440b8f00f504ee4b53fe30f4e381aae30b0568193be305256b1462216feff"},
    {file = "Pillow-8.4.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:8c803ac3c28bbc53763e6825746f05cc407b20e4a69d0122e526a582e3b5e153"},
    {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8a17b5d948f4ceeceb66384727dde11b240736fddeda54ca740b9b8b1556b29"},
    {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1394a6ad5abc838c5cd8a92c5a07535648cdf6d09e8e2d6df916dfa9ea86ead8"},
    {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:792e5c12376594bfcb986ebf3855aa4b7c225754e9a9521298e460e92fb4a488"},
    {file = "Pillow-8.4.0-cp37-cp37m-win32.whl", hash = "sha256:d99ec152570e4196772e7a8e4ba5320d2d27bf22fdf11743dd882936ed64305b"},
    {file = "Pillow-8.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:7b7017b61bbcdd7f6363aeceb881e23c46583739cb69a3ab39cb384f6ec82e5b"},
    {file = "Pillow-8.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:d89363f02658e253dbd171f7c3716a5d340a24ee82d38aab9183f7fdf0cdca49"},
    {file = "Pillow-8.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a0956fdc5defc34462bb1c765ee88d933239f9a94bc37d132004775241a7585"},
    {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b7bb9de00197fb4261825c15551adf7605cf14a80badf1761d61e59da347779"},
    {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72b9e656e340447f827885b8d7a15fc8c4e68d410dc2297ef6787eec0f0ea409"},
    {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5a4532a12314149d8b4e4ad8ff09dde7427731fcfa5917ff16d0291f13609df"},
    {file = "Pillow-8.4.0-cp38-cp38-win32.whl", hash = "sha256:82aafa8d5eb68c8463b6e9baeb4f19043bb31fefc03eb7b216b51e6a9981ae09"},
    {file = "Pillow-8.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:066f3999cb3b070a95c3652712cffa1a748cd02d60ad7b4e485c3748a04d9d76"},
    {file = "Pillow-8.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:5503c86916d27c2e101b7f71c2ae2cddba01a2cf55b8395b0255fd33fa4d1f1a"},
    {file = "Pillow-8.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4acc0985ddf39d1bc969a9220b51d94ed51695d455c228d8ac29fcdb25810e6e"},
    {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b052a619a8bfcf26bd8b3f48f45283f9e977890263e4571f2393ed8898d331b"},
    {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:493cb4e415f44cd601fcec11c99836f707bb714ab03f5ed46ac25713baf0ff20"},
    {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8831cb7332eda5dc89b21a7bce7ef6ad305548820595033a4b03cf3091235ed"},
    {file = "Pillow-8.4.0-cp39-cp39-win32.whl", hash = "sha256:5e9ac5f66616b87d4da618a20ab0a38324dbe88d8a39b55be8964eb520021e02"},
    {file = "Pillow-8.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:3eb1ce5f65908556c2d8685a8f0a6e989d887ec4057326f6c22b24e8a172c66b"},
    {file = "Pillow-8.4.0-pp36-pypy36_pp73-macosx_10_10_x86_64.whl", hash = "sha256:ddc4d832a0f0b4c52fff973a0d44b6c99839a9d016fe4e6a1cb8f3eea96479c2"},
    {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a3e5ddc44c14042f0844b8cf7d2cd455f6cc80fd7f5eefbe657292cf601d9ad"},
    {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c70e94281588ef053ae8998039610dbd71bc509e4acbc77ab59d7d2937b10698"},
    {file = "Pillow-8.4.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:3862b7256046fcd950618ed22d1d60b842e3a40a48236a5498746f21189afbbc"},
    {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4901622493f88b1a29bd30ec1a2f683782e57c3c16a2dbc7f2595ba01f639df"},
    {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84c471a734240653a0ec91dec0996696eea227eafe72a33bd06c92697728046b"},
    {file = "Pillow-8.4.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:244cf3b97802c34c41905d22810846802a3329ddcb93ccc432870243211c79fc"},
    {file = "Pillow-8.4.0.tar.gz", hash = "sha256:b8e2f83c56e141920c39464b852de3719dfbfb6e3c99a2d8da0edf4fb33176ed"},
]
rfc3986 = [
    {file = "rfc3986-1.5.0-py2.py3-none-any.whl", hash = "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97"},
    {file = "rfc3986-1.5.0.tar.gz", hash = "sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835"},
]
sniffio = [
    {file = "sniffio-1.2.0-py3-none-any.whl", hash = "sha256:471b71698eac1c2112a40ce2752bb2f4a4814c22a54a3eed3676bc0f5ca9f663"},
    {file = "sniffio-1.2.0.tar.gz", hash = "sha256:c4666eecec1d3f50960c6bdf61ab7bc350648da6c126e3cf6898d8cd4ddcd3de"},
]
workaround
[tool.poetry.dependencies]
python = "^3.10"
httpx = "^0.21.1"
lxml = "^4.7.1"
cssselect = "^1.1.0"
attrs = "^21.2.0"
more-itertools = "^8.12.0"
Pillow = "^8.4.0"
# workarounds
anyio = "^3.4.0"  # httpcore
certifi = "^2021.10.8"  # httpx, httpcore
charset-normalizer = "^2.0.9"  # httpx
h11 = "^0.12.0"  # httpcore
httpcore = "^0.14.3"  # httpx
idna = "^3.3"  # anyio, rfc3986
rfc3986 = "^1.5.0"  # httpx
sniffio = "^1.2.0"  # httpx, httpcore, anyio
$ rm poetry.lock
$ poetry install
Updating dependencies
Resolving dependencies... (0.2s)

Writing lock file

@jimmywan
Copy link

jimmywan commented Dec 27, 2021

Just tried this myself using 1.1.11 on @item4's pyproject.toml from above:

> poetry lock -vvv
...
1: Version solving took 10.174 seconds.
   1: Tried 1 solutions.

Dunno if it matters, but I have this in my env:
POETRY_VIRTUALENVS_CREATE=false

Just noticed you had 1.1.12, so I updated and retried:

> poetry self update 1.1.12
> rm poetry.lock
> poetry lock -vv
   1: Version solving took 0.146 seconds.
   1: Tried 1 solutions.

@alecandido
Copy link
Author

@jimmywan please, show even the pyproject.toml (or specify it is the same of mine).

Also, try to rerun after issuing

poetry cache clear pypi --all

to see the difference with and without cache.

@jimmywan
Copy link

jimmywan commented Dec 28, 2021

@jimmywan please, show even the pyproject.toml (or specify it is the same of mine).

I've updated my comment above to reflect the fact that I ran that test using @item4 's pyproject.toml.
Apologies for any confusion.

Also, try to rerun ... to see the difference with and without cache.

Below I reran this on a cleared cache using your pyproject.toml. Finished in ~90s.
This was on MacOS over a semi-standard residential broadband connection shared with other WFH adults:

20.6.0 Darwin Kernel Version 20.6.0: Wed Jun 23 00:26:31 PDT 2021
via SpeedTest.NET:
DOWNLOAD Mbps: 229.26
UPLOAD Mbps: 10.97

❯ poetry cache clear pypi --all
Delete 881 entries? (yes/no) [no] yes
> poetry lock -vv
...
   0: Duplicate dependencies for typing-extensions
   0: Different requirements found for typing-extensions (>=3.10.0.0) with markers * and typing-extensions (!=3.10.0.1) with markers python_version >= "3.10".
   1: Version solving took 17.517 seconds.
   1: Tried 1 solutions.
   0: Retrying dependency resolution with the following overrides ({Package('black', '21.12b0'): {'typing-extensions': <Dependency typing-extensions (>=3.10.0.0)>}}).
...
   1: Version solving took 66.233 seconds.
   1: Tried 1 solutions.
   0: Retrying dependency resolution with the following overrides ({Package('black', '21.12b0'): {'typing-extensions': <Dependency typing-extensions (!=3.10.0.1)>}}).
...
   1: Version solving took 0.253 seconds.
   1: Tried 1 solutions.
   0: Complete version solving took 84.019 seconds with 2 overrides
Summary
❯ poetry cache clear pypi --all
Delete 206 entries? (yes/no) [no] yes
❯ poetry lock -vv
Using virtualenv: /Users/jimmy.wan/.pyenv/versions/miniconda3-latest/envs/gecko
Updating dependencies
Resolving dependencies...
   1: fact: package-name is 0.1.0
   1: derived: package-name
   1: fact: package-name depends on numpy (^1)
   1: fact: package-name depends on pytest (^5.2)
   1: fact: package-name depends on pdbpp (^0.10.3)
   1: fact: package-name depends on black (^21.9b0)
   1: fact: package-name depends on isort (^5.9.3)
   1: fact: package-name depends on ipython (^7.28.0)
   1: fact: package-name depends on pylint (^2.11.1)
   1: fact: package-name depends on pytest (^5.2)
   1: fact: package-name depends on pdbpp (^0.10.3)
   1: fact: package-name depends on black (^21.9b0)
   1: fact: package-name depends on isort (^5.9.3)
   1: fact: package-name depends on ipython (^7.28.0)
   1: fact: package-name depends on pylint (^2.11.1)
   1: selecting package-name (0.1.0)
   1: derived: pylint (>=2.11.1,<3.0.0)
   1: derived: ipython (>=7.28.0,<8.0.0)
   1: derived: isort (>=5.9.3,<6.0.0)
   1: derived: black (>=21.9b0,<22.0)
   1: derived: pdbpp (>=0.10.3,<0.11.0)
   1: derived: pytest (>=5.2,<6.0)
   1: derived: numpy (>=1,<2)
   1: fact: pdbpp (0.10.3) depends on fancycompleter (>=0.8)
   1: fact: pdbpp (0.10.3) depends on wmctrl (*)
   1: fact: pdbpp (0.10.3) depends on pygments (*)
   1: selecting pdbpp (0.10.3)
   1: derived: pygments
   1: derived: wmctrl
   1: derived: fancycompleter (>=0.8)
   1: selecting isort (5.10.1)
   1: fact: fancycompleter (0.9.1) depends on pyrepl (>=0.8.2)
   1: fact: fancycompleter (0.9.1) depends on pyreadline (*)
   1: selecting fancycompleter (0.9.1)
   1: derived: pyreadline
   1: derived: pyrepl (>=0.8.2)
   1: selecting pyrepl (0.9.0)
   1: fact: pylint (2.12.2) depends on platformdirs (>=2.2.0)
   1: fact: pylint (2.12.2) depends on astroid (>=2.9.0,<2.10)
   1: fact: pylint (2.12.2) depends on isort (>=4.2.5,<6)
   1: fact: pylint (2.12.2) depends on mccabe (>=0.6,<0.7)
   1: fact: pylint (2.12.2) depends on toml (>=0.9.2)
   1: fact: pylint (2.12.2) depends on typing-extensions (>=3.10.0)
   1: fact: pylint (2.12.2) depends on colorama (*)
   1: selecting pylint (2.12.2)
   1: derived: colorama
   1: derived: typing-extensions (>=3.10.0)
   1: derived: toml (>=0.9.2)
   1: derived: mccabe (>=0.6,<0.7)
   1: derived: astroid (>=2.9.0,<2.10)
   1: derived: platformdirs (>=2.2.0)
   1: fact: astroid (2.9.0) depends on lazy-object-proxy (>=1.4.0)
   1: fact: astroid (2.9.0) depends on wrapt (>=1.11,<1.14)
   1: fact: astroid (2.9.0) depends on typing-extensions (>=3.10)
   1: selecting astroid (2.9.0)
   1: derived: wrapt (>=1.11,<1.14)
   1: derived: lazy-object-proxy (>=1.4.0)
   1: selecting mccabe (0.6.1)
   1: fact: ipython (7.30.1) depends on jedi (>=0.16)
   1: fact: ipython (7.30.1) depends on decorator (*)
   1: fact: ipython (7.30.1) depends on pickleshare (*)
   1: fact: ipython (7.30.1) depends on traitlets (>=4.2)
   1: fact: ipython (7.30.1) depends on prompt-toolkit (>=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0)
   1: fact: ipython (7.30.1) depends on pygments (*)
   1: fact: ipython (7.30.1) depends on backcall (*)
   1: fact: ipython (7.30.1) depends on matplotlib-inline (*)
   1: fact: ipython (7.30.1) depends on pexpect (>4.3)
   1: fact: ipython (7.30.1) depends on appnope (*)
   1: fact: ipython (7.30.1) depends on colorama (*)
   1: selecting ipython (7.30.1)
   1: derived: appnope
   1: derived: pexpect (>4.3)
   1: derived: matplotlib-inline
   1: derived: backcall
   1: derived: prompt-toolkit (>=2.0.0,!=3.0.0,!=3.0.1,<3.1.0)
   1: derived: traitlets (>=4.2)
   1: derived: pickleshare
   1: derived: decorator
   1: derived: jedi (>=0.16)
   1: selecting backcall (0.2.0)
   1: selecting wmctrl (0.4)
   1: selecting platformdirs (2.4.1)
   1: fact: matplotlib-inline (0.1.3) depends on traitlets (*)
   1: selecting matplotlib-inline (0.1.3)
   0: Duplicate dependencies for typing-extensions
   0: Different requirements found for typing-extensions (>=3.10.0.0) with markers * and typing-extensions (!=3.10.0.1) with markers python_version >= "3.10".
   1: Version solving took 17.517 seconds.
   1: Tried 1 solutions.
   0: Retrying dependency resolution with the following overrides ({Package('black', '21.12b0'): {'typing-extensions': <Dependency typing-extensions (>=3.10.0.0)>}}).
   1: fact: package-name is 0.1.0
   1: derived: package-name
   1: fact: package-name depends on numpy (^1)
   1: fact: package-name depends on pytest (^5.2)
   1: fact: package-name depends on pdbpp (^0.10.3)
   1: fact: package-name depends on black (^21.9b0)
   1: fact: package-name depends on isort (^5.9.3)
   1: fact: package-name depends on ipython (^7.28.0)
   1: fact: package-name depends on pylint (^2.11.1)
   1: fact: package-name depends on pytest (^5.2)
   1: fact: package-name depends on pdbpp (^0.10.3)
   1: fact: package-name depends on black (^21.9b0)
   1: fact: package-name depends on isort (^5.9.3)
   1: fact: package-name depends on ipython (^7.28.0)
   1: fact: package-name depends on pylint (^2.11.1)
   1: selecting package-name (0.1.0)
   1: derived: pylint (>=2.11.1,<3.0.0)
   1: derived: ipython (>=7.28.0,<8.0.0)
   1: derived: isort (>=5.9.3,<6.0.0)
   1: derived: black (>=21.9b0,<22.0)
   1: derived: pdbpp (>=0.10.3,<0.11.0)
   1: derived: pytest (>=5.2,<6.0)
   1: derived: numpy (>=1,<2)
   1: fact: pdbpp (0.10.3) depends on fancycompleter (>=0.8)
   1: fact: pdbpp (0.10.3) depends on wmctrl (*)
   1: fact: pdbpp (0.10.3) depends on pygments (*)
   1: selecting pdbpp (0.10.3)
   1: derived: pygments
   1: derived: wmctrl
   1: derived: fancycompleter (>=0.8)
   1: selecting isort (5.10.1)
   1: fact: fancycompleter (0.9.1) depends on pyrepl (>=0.8.2)
   1: fact: fancycompleter (0.9.1) depends on pyreadline (*)
   1: selecting fancycompleter (0.9.1)
   1: derived: pyreadline
   1: derived: pyrepl (>=0.8.2)
   1: selecting pyrepl (0.9.0)
   1: fact: pylint (2.12.2) depends on platformdirs (>=2.2.0)
   1: fact: pylint (2.12.2) depends on astroid (>=2.9.0,<2.10)
   1: fact: pylint (2.12.2) depends on isort (>=4.2.5,<6)
   1: fact: pylint (2.12.2) depends on mccabe (>=0.6,<0.7)
   1: fact: pylint (2.12.2) depends on toml (>=0.9.2)
   1: fact: pylint (2.12.2) depends on typing-extensions (>=3.10.0)
   1: fact: pylint (2.12.2) depends on colorama (*)
   1: selecting pylint (2.12.2)
   1: derived: colorama
   1: derived: typing-extensions (>=3.10.0)
   1: derived: toml (>=0.9.2)
   1: derived: mccabe (>=0.6,<0.7)
   1: derived: astroid (>=2.9.0,<2.10)
   1: derived: platformdirs (>=2.2.0)
   1: fact: astroid (2.9.0) depends on lazy-object-proxy (>=1.4.0)
   1: fact: astroid (2.9.0) depends on wrapt (>=1.11,<1.14)
   1: fact: astroid (2.9.0) depends on typing-extensions (>=3.10)
   1: selecting astroid (2.9.0)
   1: derived: wrapt (>=1.11,<1.14)
   1: derived: lazy-object-proxy (>=1.4.0)
   1: selecting mccabe (0.6.1)
   1: fact: ipython (7.30.1) depends on jedi (>=0.16)
   1: fact: ipython (7.30.1) depends on decorator (*)
   1: fact: ipython (7.30.1) depends on pickleshare (*)
   1: fact: ipython (7.30.1) depends on traitlets (>=4.2)
   1: fact: ipython (7.30.1) depends on prompt-toolkit (>=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0)
   1: fact: ipython (7.30.1) depends on pygments (*)
   1: fact: ipython (7.30.1) depends on backcall (*)
   1: fact: ipython (7.30.1) depends on matplotlib-inline (*)
   1: fact: ipython (7.30.1) depends on pexpect (>4.3)
   1: fact: ipython (7.30.1) depends on appnope (*)
   1: fact: ipython (7.30.1) depends on colorama (*)
   1: selecting ipython (7.30.1)
   1: derived: appnope
   1: derived: pexpect (>4.3)
   1: derived: matplotlib-inline
   1: derived: backcall
   1: derived: prompt-toolkit (>=2.0.0,!=3.0.0,!=3.0.1,<3.1.0)
   1: derived: traitlets (>=4.2)
   1: derived: pickleshare
   1: derived: decorator
   1: derived: jedi (>=0.16)
   1: selecting backcall (0.2.0)
   1: selecting wmctrl (0.4)
   1: selecting platformdirs (2.4.1)
   1: fact: matplotlib-inline (0.1.3) depends on traitlets (*)
   1: selecting matplotlib-inline (0.1.3)
   1: fact: black (21.12b0) depends on click (>=7.1.2)
   1: fact: black (21.12b0) depends on platformdirs (>=2)
   1: fact: black (21.12b0) depends on tomli (>=0.2.6,<2.0.0)
   1: fact: black (21.12b0) depends on pathspec (>=0.9.0,<1)
   1: fact: black (21.12b0) depends on typing-extensions (>=3.10.0.0)
   1: fact: black (21.12b0) depends on mypy-extensions (>=0.4.3)
   1: selecting black (21.12b0)
   1: derived: mypy-extensions (>=0.4.3)
   1: derived: pathspec (>=0.9.0,<1)
   1: derived: tomli (>=0.2.6,<2.0.0)
   1: derived: click (>=7.1.2)
   1: selecting mypy-extensions (0.4.3)
   1: selecting pathspec (0.9.0)
   1: fact: click (8.0.3) depends on colorama (*)
   1: selecting click (8.0.3)
   1: fact: jedi (0.18.1) depends on parso (>=0.8.0,<0.9.0)
   1: selecting jedi (0.18.1)
   1: derived: parso (>=0.8.0,<0.9.0)
   1: selecting parso (0.8.3)
   1: selecting toml (0.10.2)
   1: selecting wrapt (1.13.3)
   1: selecting lazy-object-proxy (1.7.1)
   1: selecting pickleshare (0.7.5)
   1: fact: pytest (5.4.3) depends on py (>=1.5.0)
   1: fact: pytest (5.4.3) depends on packaging (*)
   1: fact: pytest (5.4.3) depends on attrs (>=17.4.0)
   1: fact: pytest (5.4.3) depends on more-itertools (>=4.0.0)
   1: fact: pytest (5.4.3) depends on pluggy (>=0.12,<1.0)
   1: fact: pytest (5.4.3) depends on wcwidth (*)
   1: fact: pytest (5.4.3) depends on atomicwrites (>=1.0)
   1: fact: pytest (5.4.3) depends on colorama (*)
   1: selecting pytest (5.4.3)
   1: derived: atomicwrites (>=1.0)
   1: derived: wcwidth
   1: derived: pluggy (>=0.12,<1.0)
   1: derived: more-itertools (>=4.0.0)
   1: derived: attrs (>=17.4.0)
   1: derived: packaging
   1: derived: py (>=1.5.0)
   1: selecting pluggy (0.13.1)
   1: selecting attrs (21.3.0)
   1: selecting py (1.11.0)
   1: selecting traitlets (5.1.1)
   1: selecting tomli (1.2.3)
   1: selecting wcwidth (0.2.5)
   1: selecting more-itertools (8.12.0)
   1: fact: prompt-toolkit (3.0.24) depends on wcwidth (*)
   1: selecting prompt-toolkit (3.0.24)
   1: selecting decorator (5.1.0)
   1: fact: packaging (21.3) depends on pyparsing (>=2.0.2,<3.0.5 || >3.0.5)
   1: selecting packaging (21.3)
   1: derived: pyparsing (>=2.0.2,!=3.0.5)
   1: selecting pyparsing (3.0.6)
   1: selecting pygments (2.10.0)
   1: fact: numpy (1.21.5) requires Python >=3.7,<3.11
   1: derived: not numpy (==1.21.5)
   1: fact: numpy (1.21.4) requires Python >=3.7,<3.11
   1: derived: not numpy (==1.21.4)
   1: fact: numpy (1.21.3) requires Python >=3.7,<3.11
   1: derived: not numpy (==1.21.3)
   1: fact: numpy (1.21.2) requires Python >=3.7,<3.11
   1: derived: not numpy (==1.21.2)
   1: selecting numpy (1.21.1)
   1: selecting typing-extensions (4.0.1)
   1: fact: pexpect (4.8.0) depends on ptyprocess (>=0.5)
   1: selecting pexpect (4.8.0)
   1: derived: ptyprocess (>=0.5)
   1: selecting ptyprocess (0.7.0)
   1: selecting atomicwrites (1.4.0)
   1: selecting pyreadline (2.1)
   1: selecting appnope (0.1.2)
   1: selecting colorama (0.4.4)
   1: Version solving took 66.233 seconds.
   1: Tried 1 solutions.
   0: Retrying dependency resolution with the following overrides ({Package('black', '21.12b0'): {'typing-extensions': <Dependency typing-extensions (!=3.10.0.1)>}}).
   1: fact: package-name is 0.1.0
   1: derived: package-name
   1: fact: package-name depends on numpy (^1)
   1: fact: package-name depends on pytest (^5.2)
   1: fact: package-name depends on pdbpp (^0.10.3)
   1: fact: package-name depends on black (^21.9b0)
   1: fact: package-name depends on isort (^5.9.3)
   1: fact: package-name depends on ipython (^7.28.0)
   1: fact: package-name depends on pylint (^2.11.1)
   1: fact: package-name depends on pytest (^5.2)
   1: fact: package-name depends on pdbpp (^0.10.3)
   1: fact: package-name depends on black (^21.9b0)
   1: fact: package-name depends on isort (^5.9.3)
   1: fact: package-name depends on ipython (^7.28.0)
   1: fact: package-name depends on pylint (^2.11.1)
   1: selecting package-name (0.1.0)
   1: derived: pylint (>=2.11.1,<3.0.0)
   1: derived: ipython (>=7.28.0,<8.0.0)
   1: derived: isort (>=5.9.3,<6.0.0)
   1: derived: black (>=21.9b0,<22.0)
   1: derived: pdbpp (>=0.10.3,<0.11.0)
   1: derived: pytest (>=5.2,<6.0)
   1: derived: numpy (>=1,<2)
   1: fact: pdbpp (0.10.3) depends on fancycompleter (>=0.8)
   1: fact: pdbpp (0.10.3) depends on wmctrl (*)
   1: fact: pdbpp (0.10.3) depends on pygments (*)
   1: selecting pdbpp (0.10.3)
   1: derived: pygments
   1: derived: wmctrl
   1: derived: fancycompleter (>=0.8)
   1: selecting isort (5.10.1)
   1: fact: fancycompleter (0.9.1) depends on pyrepl (>=0.8.2)
   1: fact: fancycompleter (0.9.1) depends on pyreadline (*)
   1: selecting fancycompleter (0.9.1)
   1: derived: pyreadline
   1: derived: pyrepl (>=0.8.2)
   1: selecting pyrepl (0.9.0)
   1: fact: pylint (2.12.2) depends on platformdirs (>=2.2.0)
   1: fact: pylint (2.12.2) depends on astroid (>=2.9.0,<2.10)
   1: fact: pylint (2.12.2) depends on isort (>=4.2.5,<6)
   1: fact: pylint (2.12.2) depends on mccabe (>=0.6,<0.7)
   1: fact: pylint (2.12.2) depends on toml (>=0.9.2)
   1: fact: pylint (2.12.2) depends on typing-extensions (>=3.10.0)
   1: fact: pylint (2.12.2) depends on colorama (*)
   1: selecting pylint (2.12.2)
   1: derived: colorama
   1: derived: typing-extensions (>=3.10.0)
   1: derived: toml (>=0.9.2)
   1: derived: mccabe (>=0.6,<0.7)
   1: derived: astroid (>=2.9.0,<2.10)
   1: derived: platformdirs (>=2.2.0)
   1: fact: astroid (2.9.0) depends on lazy-object-proxy (>=1.4.0)
   1: fact: astroid (2.9.0) depends on wrapt (>=1.11,<1.14)
   1: fact: astroid (2.9.0) depends on typing-extensions (>=3.10)
   1: selecting astroid (2.9.0)
   1: derived: wrapt (>=1.11,<1.14)
   1: derived: lazy-object-proxy (>=1.4.0)
   1: selecting mccabe (0.6.1)
   1: fact: ipython (7.30.1) depends on jedi (>=0.16)
   1: fact: ipython (7.30.1) depends on decorator (*)
   1: fact: ipython (7.30.1) depends on pickleshare (*)
   1: fact: ipython (7.30.1) depends on traitlets (>=4.2)
   1: fact: ipython (7.30.1) depends on prompt-toolkit (>=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0)
   1: fact: ipython (7.30.1) depends on pygments (*)
   1: fact: ipython (7.30.1) depends on backcall (*)
   1: fact: ipython (7.30.1) depends on matplotlib-inline (*)
   1: fact: ipython (7.30.1) depends on pexpect (>4.3)
   1: fact: ipython (7.30.1) depends on appnope (*)
   1: fact: ipython (7.30.1) depends on colorama (*)
   1: selecting ipython (7.30.1)
   1: derived: appnope
   1: derived: pexpect (>4.3)
   1: derived: matplotlib-inline
   1: derived: backcall
   1: derived: prompt-toolkit (>=2.0.0,!=3.0.0,!=3.0.1,<3.1.0)
   1: derived: traitlets (>=4.2)
   1: derived: pickleshare
   1: derived: decorator
   1: derived: jedi (>=0.16)
   1: selecting backcall (0.2.0)
   1: selecting wmctrl (0.4)
   1: selecting platformdirs (2.4.1)
   1: fact: matplotlib-inline (0.1.3) depends on traitlets (*)
   1: selecting matplotlib-inline (0.1.3)
   1: fact: black (21.12b0) depends on click (>=7.1.2)
   1: fact: black (21.12b0) depends on platformdirs (>=2)
   1: fact: black (21.12b0) depends on tomli (>=0.2.6,<2.0.0)
   1: fact: black (21.12b0) depends on pathspec (>=0.9.0,<1)
   1: fact: black (21.12b0) depends on typing-extensions (!=3.10.0.1)
   1: fact: black (21.12b0) depends on mypy-extensions (>=0.4.3)
   1: selecting black (21.12b0)
   1: derived: mypy-extensions (>=0.4.3)
   1: derived: typing-extensions (!=3.10.0.1)
   1: derived: pathspec (>=0.9.0,<1)
   1: derived: tomli (>=0.2.6,<2.0.0)
   1: derived: click (>=7.1.2)
   1: selecting mypy-extensions (0.4.3)
   1: selecting pathspec (0.9.0)
   1: fact: click (8.0.3) depends on colorama (*)
   1: selecting click (8.0.3)
   1: fact: jedi (0.18.1) depends on parso (>=0.8.0,<0.9.0)
   1: selecting jedi (0.18.1)
   1: derived: parso (>=0.8.0,<0.9.0)
   1: selecting parso (0.8.3)
   1: selecting toml (0.10.2)
   1: selecting wrapt (1.13.3)
   1: selecting lazy-object-proxy (1.7.1)
   1: selecting pickleshare (0.7.5)
   1: fact: pytest (5.4.3) depends on py (>=1.5.0)
   1: fact: pytest (5.4.3) depends on packaging (*)
   1: fact: pytest (5.4.3) depends on attrs (>=17.4.0)
   1: fact: pytest (5.4.3) depends on more-itertools (>=4.0.0)
   1: fact: pytest (5.4.3) depends on pluggy (>=0.12,<1.0)
   1: fact: pytest (5.4.3) depends on wcwidth (*)
   1: fact: pytest (5.4.3) depends on atomicwrites (>=1.0)
   1: fact: pytest (5.4.3) depends on colorama (*)
   1: selecting pytest (5.4.3)
   1: derived: atomicwrites (>=1.0)
   1: derived: wcwidth
   1: derived: pluggy (>=0.12,<1.0)
   1: derived: more-itertools (>=4.0.0)
   1: derived: attrs (>=17.4.0)
   1: derived: packaging
   1: derived: py (>=1.5.0)
   1: selecting pluggy (0.13.1)
   1: selecting attrs (21.3.0)
   1: selecting py (1.11.0)
   1: selecting traitlets (5.1.1)
   1: selecting tomli (1.2.3)
   1: selecting wcwidth (0.2.5)
   1: selecting more-itertools (8.12.0)
   1: fact: prompt-toolkit (3.0.24) depends on wcwidth (*)
   1: selecting prompt-toolkit (3.0.24)
   1: selecting decorator (5.1.0)
   1: fact: packaging (21.3) depends on pyparsing (>=2.0.2,<3.0.5 || >3.0.5)
   1: selecting packaging (21.3)
   1: derived: pyparsing (>=2.0.2,!=3.0.5)
   1: selecting pyparsing (3.0.6)
   1: selecting pygments (2.10.0)
   1: fact: numpy (1.21.5) requires Python >=3.7,<3.11
   1: derived: not numpy (==1.21.5)
   1: fact: numpy (1.21.4) requires Python >=3.7,<3.11
   1: derived: not numpy (==1.21.4)
   1: fact: numpy (1.21.3) requires Python >=3.7,<3.11
   1: derived: not numpy (==1.21.3)
   1: fact: numpy (1.21.2) requires Python >=3.7,<3.11
   1: derived: not numpy (==1.21.2)
   1: selecting numpy (1.21.1)
   1: selecting typing-extensions (4.0.1)
   1: fact: pexpect (4.8.0) depends on ptyprocess (>=0.5)
   1: selecting pexpect (4.8.0)
   1: derived: ptyprocess (>=0.5)
   1: selecting ptyprocess (0.7.0)
   1: selecting atomicwrites (1.4.0)
   1: selecting pyreadline (2.1)
   1: selecting appnope (0.1.2)
   1: selecting colorama (0.4.4)
   1: Version solving took 0.253 seconds.
   1: Tried 1 solutions.
   0: Complete version solving took 84.019 seconds with 2 overrides
   0: Resolved with overrides: ({Package('black', '21.12b0'): {'typing-extensions': <Dependency typing-extensions (>=3.10.0.0)>}}), ({Package('black', '21.12b0'): {'typing-extensions': <Dependency typing-extensions (!=3.10.0.1)>}})

@alecandido
Copy link
Author

Thank you for your data. 90 seconds it's more similar (same scale) but much more reasonable, for a cache-less installation.

It's weird that apparently same tool in same conditions has such different results. Of course this means that the conditions are not the same, but it also yields that we are not controlling the very relevant differences.

I guess possible differences are:

  • poetry version: 1.1.11 @jimmywan, 1.1.12 me, 1.2.0a2 @item4
  • installation (maybe): for sure I installed with pipx, but I would say this shouldn't make any difference (but I don't know what is making the difference, so I put nevertheless)
  • network: apparently not very relevant known differences, but for sure we have different networks and we're geographically spread
  • a huge who knows...

@jimmywan
Copy link

I guess possible differences are:

FYI, my last test was with 1.1.12.

@maciejskorski
Copy link

I checked this on the recent master, also works fine.

@item4
Copy link

item4 commented Jan 4, 2022

@maciejskorski how can i try with master branch? is it just can use with --preview flag installation?

@alecandido
Copy link
Author

@item4 For sure you can download the repo and install from the source :)

@alecandido
Copy link
Author

Keep taking a lot for me. Still on 1.1.12, even with weeks old cache, operations like:

  • poetry add
  • poetry add -D
  • poetry lock
  • poetry update

take hundreds of seconds, if not thousands.

@item4
Copy link

item4 commented Jan 16, 2022

In my case, I can fix with change DNS settings. I used poetry in WSL2, and WSL2 change /etc/resolv.conf in random time and it occurs DNS resolving problem. So I add disable config for WSL2 DNS method and make /etc/resolv.conf by my hands.

@mhangaard
Copy link

mhangaard commented Jan 20, 2022

Added django to my very first brand new Poetry project and it took almost 1.5 hours to resolve. The "Creating virtualenv" step was also somewhere between 15 and 30 minutes. Finally the installing step took about 20 minutes.

$ poetry new <my_project>
Created package <my_project> in <my_project>
$ poetry add django
Creating virtualenv <my_project>-ozR2Fvtl-py3.8 in /home/mh/.cache/pypoetry/virtualenvs
Using version ^4.0.1 for Django

Updating dependencies
Resolving dependencies... (5329.9s)

Package operations: 12 installs, 0 updates, 0 removals

  • Installing pyparsing (3.0.6)
  • Installing asgiref (3.4.1)
  • Installing attrs (21.4.0)
  • Installing backports.zoneinfo (0.2.1): Pending...
  • Installing more-itertools (8.12.0)
  • Installing packaging (21.3): Pending...
  • Installing pluggy (0.13.1)
  • Installing py (1.11.0)
  • Installing sqlparse (0.4.2)
  • Installing wcwidth (0.2.5)

System

  • Windows 11
  • WSL 2
  • Ubuntu 20.04
  • Python 3.8.10
  • Poetry 1.1.12
  • Speed test over wifi: download ~100 Mbit/s, upload ~70Mbit/s.

@Mithrandir2k18
Copy link

I don't know much about the PyPI API, but it seems that poetry is querying package versions one-by-one. Isn't it possible to query all versions that satisfy a dependency and store them in a chache? If the API allows that it'd significantly reduce the number of network requests to PyPI which -vvv seems to indicate takes the longest.

@alecandido
Copy link
Author

I don't know much about the PyPI API, but it seems that poetry is querying package versions one-by-one. Isn't it possible to query all versions that satisfy a dependency and store them in a chache? If the API allows that it'd significantly reduce the number of network requests to PyPI which -vvv seems to indicate takes the longest.

This might be relevant, but I wonder if it's really the bottleneck: even pip has to resolve dependencies for installation (maybe/likely with less effort than poetry), and also dependencies of dependencies, and so on, but it's not taking the same amount of time.
So, for sure networking is always a good candidate for slow-down, but I'm still not convinced is our best candidate for 2h poetry update...

@Mithrandir2k18
Copy link

Mithrandir2k18 commented Jan 27, 2022

May it hits some individual API-query limits that forces a wait period?

P.S.: If the api docs on rate limits is up-to-date then this doesn't seem to be a candidate for the issue(besides overall networking overhead).

@john-sandall
Copy link

For those hitting this, I added a couple tips on this issue on how to improve issues with Poetry being slow: #2094 (comment)

@alecandido
Copy link
Author

Thank you @john-sandall for your advice, unfortunately I've always been on Ubuntu with a download speed >= 500 Mbit/s, and mostly not so many packages.

So, the amount of time it's time unexplained for me, but at least I got a reference to an older and still open issue, that I failed to found before (even though has practically my same title).

I'm tempted to close this as duplicated.

@alecandido
Copy link
Author

Similar or duplicated of:

I believe the best contribution I can give is to close this one, keep tracking the others.

I suggest anyone that falls here to look instead to #2094, since it's the oldest one I'm aware of dealing with this issue.

@abn abn removed the status/triage This issue needs to be triaged label Mar 3, 2022
@ash1khan
Copy link

It will take a thousand years to catch pipenv. Tried almost all workaround and installing in fresh linux with a fresh empty project. Adding fastapi took 4329.2 s. I don't know what poetry does extra for keeping dependency check for me. But I really don't care. All i care is about time. Creating virtual env with cementing lock file for dependencies with pipenv took 0.2 sec. I am out

@alecandido
Copy link
Author

Taking long might be frustrating, and I really hope it will improve over time.

On the other hand this is not a frequent operation in development. So I just leave my computer doing it for me, while doing something else.

In any case, you got it for free @ash1khan, so I see no reason why to complaint with people here, that are only trying to improve. If anything, consider to take part to the effort.

Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

If you're just not interested in, that's it. No need to say anything more :)

@Euraxluo
Copy link

Euraxluo commented Aug 5, 2022

Can poetry consider a pattern install without checking for dependencies

@szandara
Copy link

Resolving dependencies... (6779.1s) and counting.......

@Maksim75ru
Copy link

it helped me with Resolving dependencies... (millions seconds)
poetry cache clear pypi --all
and then
poetry install

@danielmacuare
Copy link

danielmacuare commented Aug 21, 2023

This might work for you if you are working on any modern Linux-based distro. It's pretty easy to try.

TDLR: Issues as IPv6 resolution is preferred over IPv4.
Easy workaround to test: Disable IPv6, test and confirm if this solve your issues

# Check if IPv6 is enabled in your system (0 Means Enable, 1 Means disable)
sysctl -a 2>/dev/null | grep disable_ipv6 

# Disable IPv6
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1 
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1

# Test
poetry install

# Re-enable IPv6
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0

This solved my issues with Poetry and PIP being extremely slow to install packages.

I've written a more extensive post on this workaround. Have a look if you want to get more information.
Blog Post: IPv6 Issues with Python Package Managers

Copy link

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Feb 29, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
kind/bug Something isn't working as expected
Projects
None yet
Development

No branches or pull requests