poetry: The specified Python version (3.8) is not supported by the project (^3.7).

  • 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: Ubuntu 18.04.3 LTS

  • Poetry version: Poetry version 1.0.0

  • Link of a Gist with the contents of your pyproject.toml file: https://gist.github.com/jobevers/a3e674e4f316a6c0ea535ac818bf5f61

Issue

I wanted to start using python 3.8 in a project:

» poetry env use -vvv 3.8.0 

[NoCompatiblePythonVersionFound]
The specified Python version (3.8) is not supported by the project (^3.7).
Please choose a compatible version or loosen the python constraint specified in the pyproject.toml file.

Traceback (most recent call last):
  File "/home/jobevers/.local/pipx/venvs/poetry/lib/python3.6/site-packages/clikit/console_application.py", line 131, in run
    status_code = command.handle(parsed_args, io)
  File "/home/jobevers/.local/pipx/venvs/poetry/lib/python3.6/site-packages/clikit/api/command/command.py", line 120, in handle
    status_code = self._do_handle(args, io)
  File "/home/jobevers/.local/pipx/venvs/poetry/lib/python3.6/site-packages/clikit/api/command/command.py", line 171, in _do_handle
    return getattr(handler, handler_method)(args, io, self)
  File "/home/jobevers/.local/pipx/venvs/poetry/lib/python3.6/site-packages/cleo/commands/command.py", line 92, in wrap_handle
    return self.handle()
  File "/home/jobevers/.local/pipx/venvs/poetry/lib/python3.6/site-packages/poetry/console/commands/env/use.py", line 23, in handle
    env = manager.activate(self.argument('python'), self._io)
  File "/home/jobevers/.local/pipx/venvs/poetry/lib/python3.6/site-packages/poetry/utils/env.py", line 259, in activate
    self.create_venv(io, executable=python, force=create)
  File "/home/jobevers/.local/pipx/venvs/poetry/lib/python3.6/site-packages/poetry/utils/env.py", line 520, in create_venv
    self._poetry.package.python_versions, python_minor

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 3
  • Comments: 15 (6 by maintainers)

Commits related to this issue

Most upvoted comments

You should use only the minor version with env use:

poetry env use 3.8

Basically, Poetry looks for a python3.8.0 executable which it does not find leading to this error.

+1 having this issue at the moment with python 3.8.2.

Edit: changing

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

to

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

worked.

I guess initially set it too strictly without knowing

Oh, I know what’s going on, this is a bug in how Poetry gets the patch version of the executable. Basically, it uses the current Python for the patch version instead of the one of the passed executable.

This should be an easy fix.

+1 having this issue at the moment with python 3.8.2.

Edit: changing

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

to

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

worked.

I guess initially set it too strictly without knowing It didinot work in my case, somehow

Fixed mine by adding this to ~/.zshrc (on advice from work documentation). Also needed to restart shell and rerun poetry install.

export LDFLAGS="-L/opt/homebrew/opt/openssl@3/lib"
export CPPFLAGS="-I/opt/homebrew/opt/openssl@3/include"
export C_INCLUDE_PATH=/opt/homebrew/Cellar/librdkafka/1.8.2/include
export LIBRARY_PATH=/opt/homebrew/Cellar/librdkafka/1.8.2/lib

I think you may have gotten turned around and are discussing something totally different.

+1 having this issue at the moment with python 3.8.2.

Edit: changing

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

to

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

worked.

I guess initially set it too strictly without knowing

Thank you kamyar This solution worked for me also. Python 3.8.5

I guess initially set it too strictly without knowing

I’m getting mixed results - work for me but not the person next to me, not sure which is expected behaviour. When saying:

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

which patch versions does that support?