poetry: ModuleNotFoundError: No module named 'cleo'

  • 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: Mac OS X / 10.14.6 / 18G5033
  • Poetry version: 1.1.0
  • Python version: 3.8

Issue

After updating poetry to 1.1.0 with poetry self update, it stopped working. I cannot run even poetry --version now.

$ poetry self update
Updating to 1.1.0
 - Downloading poetry-1.1.0-darwin.tar.gz 100%

Poetry (1.1.0) is installed now. Great!

$ poetry
Traceback (most recent call last):
  File "/Users/username/.poetry/bin/poetry", line 12, in <module>
    from poetry.console import main
  File "/Users/username/.poetry/lib/poetry/console/__init__.py", line 1, in <module>
    from .application import Application
  File "/Users/username/.poetry/lib/poetry/console/application.py", line 3, in <module>
    from cleo import Application as BaseApplication
ModuleNotFoundError: No module named 'cleo'

$ poetry --version
Traceback (most recent call last):
  File "/Users/username/.poetry/bin/poetry", line 12, in <module>
    from poetry.console import main
  File "/Users/username/.poetry/lib/poetry/console/__init__.py", line 1, in <module>
    from .application import Application
  File "/Users/username/.poetry/lib/poetry/console/application.py", line 3, in <module>
    from cleo import Application as BaseApplication
ModuleNotFoundError: No module named 'cleo'

I searched for an issue but couldn’t find one. #2991 was for a different problem.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 4
  • Comments: 20 (2 by maintainers)

Most upvoted comments

@anpr I struggled to get this working on Python 3.10 too. The following worked:

pip install cleo tomlkit poetry.core requests cachecontrol cachy html5lib pkginfo virtualenv lockfile

I use python with pyenv, and experienced the same issue if I tried to run poetry with Python 3.10.

I fixed it with

$ pyenv install 3.9.9   # if you haven't done so already
$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py > get-poetry.py
$ pyenv local 3.9.9
$ python get-poetry.py --uninstall
$ python get-poetry.py

Then I manually edited ~/.poetry/bin/poetry to use python 3.9.9 all the time:

#!/Users/anpr/.pyenv/versions/3.9.9/bin/python

Seems like a hack, and there is maybe a bug in poetry if it’s run with Python 3.10?

This still happens

I had the same problem after updating to python 3.9 but the issue went away after “pip install --user poetry”. Note that I use python through pyenv.

I had to do the same thing after adding python 3.9 to my pyenv and update poetry, re-install was the only thing that would do it.

Same here

I needed to use Poetry soon and re-installed it.

python get-poetry.py --uninstall
python get-poetry.py

The error has gone.

I hope this helps other people.

@anpr I struggled to get this working on Python 3.10 too. The following worked:

pip install cleo tomlkit poetry.core requests cachecontrol cachy html5lib pkginfo virtualenv lockfile

Thank you @Ben-Hampson . After searching for a solution for over 2 hours this seemed to do the trick!

For me, changing the python version back to 3.9.7 fixed the issued. I was running poetry in a Docker container. Using this as the base fixed it:

FROM python:3.9.7-bullseye
...

Ah ok I’ll give that shot. I’ve been using the python:slim container which I believe is on 3.9.5

Looks like that fixed it! Thanks @tomjohnburton

I needed to use Poetry soon and re-installed it.

python get-poetry.py --uninstall
python get-poetry.py

The error has gone.

I hope this helps other people.

Of course you’ll need the file as such

curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -