Repository navigation
poetry env info has wrong virtualenv info #6893
Copy link
Copy link
Closed
Labels
area/venvRelated to virtualenv managementRelated to virtualenv managementkind/bugSomething isn't working as expectedSomething isn't working as expectedstatus/triageThis issue needs to be triagedThis issue needs to be triaged
Description
- Poetry version: (version 1.2.2)
- Python version: (version 3.9.11)
- OS version and name: macOS 13.0
- pyproject.toml: https://gist.github.com/adammarples/256b00800dbecacccde7ec8700807c94
- I am on the latest stable Poetry version, installed using a recommended method.
- I have searched the issues of this repo and believe that this is not a duplicate.
- I have consulted the FAQ and blog for any relevant entries or release notes.
- If an exception occurs when executing a command, I executed it again in debug mode (
-vvvoption) and have included the output below.
Issue
Creating a fresh poetry environment, the info returned by poetry env info does not match the virtualenv created
- create a fresh dir
mkdir sample && cd sample- check that my active python is as I want (3.10.3 installed using asdf)
> ~/sample $ python --version
Python 3.10.3
> ~/sample $ which python
/Users/adammarples/.asdf/installs/python/3.10.3/bin/python2.5 make sure prefer-active-python is set to true
> ~/sample $ poetry config virtualenvs.prefer-active-python true- poetry init, and manually changed suggested python compatible version from 3.9 to 3.10
> ~/sample $ poetry init
Compatible Python versions [^3.9]: ^3.10- poetry env info, no path so far, but declares that the Virtualenv is Python version 3.9.11
> ~/sample $ poetry env info
Virtualenv
Python: 3.9.11
Implementation: CPython
Path: NA
Executable: NA
System
Platform: darwin
OS: posix
Python: 3.9.11
Path: /Users/adammarples/.pyenv/versions/3.9.11
Executable: /Users/adammarples/.pyenv/versions/3.9.11/bin/python3.9- poetry update seems to create the correct virtualenv (3.10)
> ~/sample $ poetry update
Creating virtualenv sample-vPyTu8GS-py3.10 in /Users/xxxx/Library/Caches/pypoetry/virtualenvs
> ~/sample $ poetry run python --version
Python 3.10.3
> ~/sample $ poetry run which python
/Users/adammarples/Library/Caches/pypoetry/virtualenvs/sample-vPyTu8GS-py3.10/bin/python- poetry env info, still no path, but declares that the Virtualenv is Python version 3.9.11
> ~/sample $ poetry env info
Virtualenv
Python: 3.9.11
Implementation: CPython
Path: NA
Executable: NA
System
Platform: darwin
OS: posix
Python: 3.9.11
Path: /Users/adammarples/.pyenv/versions/3.9.11
Executable: /Users/adammarples/.pyenv/versions/3.9.11/bin/python3.9Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area/venvRelated to virtualenv managementRelated to virtualenv managementkind/bugSomething isn't working as expectedSomething isn't working as expectedstatus/triageThis issue needs to be triagedThis issue needs to be triaged
Activity
Superskyyy commentedon Nov 1, 2022
Same, this happens when .venv is removed from my project, resulting in NA in virtualenv info and poetry install will fail with Python not found. (Ubuntu)
I believe this problem is caused by the option
prefer-active-python, when I turn that off, the virtual env can be recreated without errors.adammarples commentedon Nov 3, 2022
I just want to add to this issue that suddenly poetry has found the right virtualenv but it has decided that all my poetry environments now direct to this sample environment 😂 I have no idea how but this is the output of
poetry env infoin now all of my projects.I'm assuming that this is the result of
prefer-active-python, because that is the only setting I have changed. I just wish there was a dead simple way of getting poetry to build an environment from the active python interpreter in the shell at the time, I have rarely successfully managed to do this. I have all kinds of tools (pyenv, asdf, direnv) for managing which python version is active, I just want poetry to use it!doolio commentedon Nov 5, 2022
I have the same issue (see discussion #6978). I've found it works provided the currently active python matches the python used to install poetry.
adammarples commentedon Nov 7, 2022
Thank you @finswimmer !
david-waterworth commentedon Nov 14, 2023
I just encountered this with a new project and after a bit of investigation, it turned out that vscode automatically activated a venv from another project and didn't provide any indication in the console. So when I ran poetry it was running in the wrong context. By deactivating the env that vscode activated poetry worked fine again.
github-actions commentedon Feb 29, 2024
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.