poetry re-installs up-to-date site-packages when virtualenvs.create is false

Created on 14 Jan 2020  Â·  3Comments  Â·  Source: python-poetry/poetry

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

  • OS version and name: CentOS Linux release 7.5.1804

  • Poetry version: 1.0.2

Issue

Since poetry 1.0.1 we experience that already up-to-date site-packages (with the correct versions) are reinstalled by poetry, as it tries to update them, similar to #1711 (there it was about dist-packages). This was still working in poetry 1.0.0. This happens when not using poetry's virtualenv feature (using poetry config virtualenvs.create false), in this case we are using conda to manage the environments.

Here's a part of the poetry install output, when running it the second time:

  - Updating more-itertools (7.2.0 /u/jonathan/conda-envs/segm-3.6/lib/python3.6/site-packages -> 7.2.0)
  - Updating decorator (4.4.1 /u/jonathan/conda-envs/segm-3.6/lib/python3.6/site-packages -> 4.4.1)
  - Updating ipython-genutils (0.2.0 /u/jonathan/conda-envs/segm-3.6/lib/python3.6/site-packages -> 0.2.0)

It seems that site-packages can never match the version, so poetry tries to upgrade them, even when the version actually matches.

Output of poetry debug info:

Poetry
Version: 1.0.1
Python:  3.6.10

Virtualenv
Python:         3.6.10
Implementation: CPython
Path:           …
Valid:          True

System
Platform: linux
OS:       posix
Python:  …
Bug

Most helpful comment

Just tested this with poetry 1.0.5 and reproduced this issue.

All 3 comments

Just tested this with poetry 1.0.5 and reproduced this issue.

Tested it again with poetry 1.0.10 and could reproduce this issue, however this seems to be fixed on the develop branch / 1.1.0a3, it works for site-packages and dist-packages there.

If anybody else needs poetry to install packages once for site-packages and dist-packages (see #1711) with the current versions, we are using a specific poetry version for both cases:

# just using setuptools since that's installed almost everywhere
PACKAGE_LOCATION=$(pip show setuptools | grep Location | tail -c 14)
if [[ "$PACKAGE_LOCATION" == "dist-packages" ]]; then
    pip install poetry==1.0.5  # or sth. newer
else
    pip install poetry==1.0.0
fi

This is fixed with poetry 1.1.0, thanks!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

nikaro picture nikaro  Â·  3Comments

probablykasper picture probablykasper  Â·  3Comments

AWegnerGitHub picture AWegnerGitHub  Â·  3Comments

etijskens picture etijskens  Â·  3Comments

kierun picture kierun  Â·  3Comments