Skip to content

[virtualenvs] configuration not working with pyproject.toml #2937

@lcbm

Description

@lcbm
  • 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).
  • OS version and name: Linux 5.8.9-arch2-1 x86_64
  • Poetry version: 1.0.10
  • Link of a Gist with the contents of your pyproject.toml file: 👇
[tool.poetry]
name = "name"
version = "0.1.0"
description = "description"
authors = ["my-name my-name@mail.com"]
license = "BSD-3-Clause"

[tool.poetry.dependencies]
python = "^3.8"

[tool.poetry.dev-dependencies]
pre-commit = "^2.7.1"
pylint = "^2.6.0"
pytest = "^6.0.2"
pytest-cov = "^2.10.1"

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

[virtualenvs]
create = true
in-project = true

Issue

Hello, I've been trying to make Poetry create the virtual environment folder in the project's root but it kept installing in home/leleco/.cache/pypoetry/virtualenvs despite the configuration set in pyproject.toml file.

After a few tries, I ran poetry config --list and the output was this 👇

cache-dir = "/home/leleco/.cache/pypoetry"
virtualenvs.create = true
virtualenvs.in-project = false
virtualenvs.path = "{cache-dir}/virtualenvs"  # /home/leleco/.cache/pypoetry/virtualenvs

This got me startled, so I tried poetry config virtualenvs.in-project true, then poetry install and it worked: a .venv was created inside my project's root directory. I then tried the same, except that with virtualenvs.create 👇

# pyproject.toml

[virtualenvs]
create = false
in-project = true

And the result from poetry config --list was this 👇

cache-dir = "/home/leleco/.cache/pypoetry"
virtualenvs.create = true
virtualenvs.in-project = true
virtualenvs.path = "{cache-dir}/virtualenvs"  # /home/leleco/.cache/pypoetry/virtualenvs

With this, I concluded that [virtualenvs] does not work with pyproject.toml (which was expected to me, as a user). Furthermore, poetry config virtualenvs.in-project true --local creates a poetry.toml instead of adding an entry in pyproject.toml. 👇

# poetry.toml

[virtualenvs]
in-project = true

Is this expected? If so, I couldn't find the documentation explaining this... also, is there a chance that we convert this issue from Bug to Feature Request in case the described behavior is the expected behavior? I'm more than glad to update this description and convert it to a feature request with proper use-case description.

Thanks in advance,
Hope I can be useful to resolve this, or to implement this feature, somehow 🥳

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/docsDocumentation issues/improvements

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions