Closed jkary closed 1 year ago
@jkary does this happen if you clean and re-install poetry? Or installing poetry via pipx
?
This happened to me after uninstalling an old version of Poetry (using --uninstall
) and then installing again.
Poetry version 1.1.4, Ubuntu 20.04.
Edit: It's when I try to install black that this happens. My other dependencies work fine. If I install black using pip and then add it to poetry everything is fine.
I did a pip uninstall poetry:
JKARY-M-V80G:svs-alto jkary$ pip uninstall poetry
Found existing installation: poetry 1.0.5
Uninstalling poetry-1.0.5:
Would remove:
/Users/jkary/.pyenv/versions/3.7.2/bin/poetry
/Users/jkary/.pyenv/versions/3.7.2/lib/python3.7/site-packages/poetry-1.0.5.dist-info/*
/Users/jkary/.pyenv/versions/3.7.2/lib/python3.7/site-packages/poetry/*
Proceed (y/n)? y
Successfully uninstalled poetry-1.0.5
I don't know why I had 1.0.5 as I did a poetry self update to the latest version. This procedure resolved my issue.
Thanks!
I faced this issue too in 1.1.3 version. I was able to fix it by creating a new virtual environment and reinstalling dependencies.
As requested in Discord, updating for completeness:
OS version and name: macOS Catalina 10.15.7 (using the bash
shell)
Poetry version: 1.1.4
Link of a Gist with the contents of your pyproject.toml file: https://gist.github.com/jwheeler31/aa5318f7e9953820f4597fd492035097
-vvv
outputUsing 1.1.4, I ran poetry add -D mypy
(also attempted poetry add mypy
for completeness, and received the following error:
Using version ^0.790 for mypy
Updating dependencies
Resolving dependencies... (1.8s)
RuntimeError
generator didn't stop after throw()
at ~/.pyenv/versions/3.8.2/lib/python3.8/contextlib.py:162 in __exit__
158│ # by 'except BaseException'.
159│ if sys.exc_info()[1] is value:
160│ return False
161│ raise
→ 162│ raise RuntimeError("generator didn't stop after throw()")
163│
164│
165│ class _AsyncGeneratorContextManager(_GeneratorContextManagerBase,
166│ AbstractAsyncContextManager):
The expected behavior is for the install to proceed as if we were installing flake8
.
@jkary @jwheeler31 the below was my attempt at reproducing the issue (removed your path dependency, but otherwise should be identitical. It worked without an issue. So, I suspect the issue is somehow with the environment. The custom installer seems to have issue sin certain scenarios - not sure of all the root causes yet. However, can you perhaps try installing poetry
using pipx
?
podman run --rm -i --entrypoint bash python:3.7 <<EOF
set -xe
python -m pip install -q poetry
install -d foobar
pushd foobar
cat > pyproject.toml <<TOML
[tool.poetry]
name = "svs-alto"
version = "0.1.0"
description = "Scripts for SVS test bed deployment."
authors = ["Jason Kary <jkary@cisco.com>"]
[tool.poetry.dependencies]
python = "^3.7"
python-xml2dict = "^0.1.1"
jupyter = "^1.0.0"
pandas = "^1.1.0"
openpyxl = "^3.0.4"
"yaml-1.3" = "^0.1.0"
pyyaml = "^5.3.1"
json2yaml = "^1.1.1"
xlrd = "^1.2.0"
jinja2 = "^2.11.2"
ucsmsdk = "^0.9.10"
[tool.poetry.dev-dependencies]
black = "^19.10b0"
pytest = "^6.0.1"
[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"
TOML
poetry install
poetry add ansible
EOF
We experience the same issue with the latest Poetry version 1.1.4
. Invoking poetry update isort
or just poetry update
leads to the same exception as noted above:
>>> poetry update
Updating dependencies
Resolving dependencies... (6.6s)
RuntimeError
generator didn't stop after throw()
at /usr/local/lib/python3.7/contextlib.py:161 in __exit__
157│ # by 'except BaseException'.
158│ if sys.exc_info()[1] is value:
159│ return False
160│ raise
→ 161│ raise RuntimeError("generator didn't stop after throw()")
162│
163│
164│ class _AsyncGeneratorContextManager(_GeneratorContextManagerBase,
165│ AbstractAsyncContextManager):
The same with verbose output:
>>> poetry update -v
Using virtualenv: /pSeven/venv
Updating dependencies
Resolving dependencies... (0.5s)
Stack trace:
26 /opt/poetry/.poetry/lib/poetry/_vendor/py3.7/clikit/console_application.py:131 in run
status_code = command.handle(parsed_args, io)
25 /opt/poetry/.poetry/lib/poetry/_vendor/py3.7/clikit/api/command/command.py:120 in handle
status_code = self._do_handle(args, io)
24 /opt/poetry/.poetry/lib/poetry/_vendor/py3.7/clikit/api/command/command.py:171 in _do_handle
return getattr(handler, handler_method)(args, io, self)
23 /opt/poetry/.poetry/lib/poetry/_vendor/py3.7/cleo/commands/command.py:92 in wrap_handle
return self.handle()
22 /opt/poetry/.poetry/lib/poetry/console/commands/update.py:47 in handle
return self._installer.run()
21 /opt/poetry/.poetry/lib/poetry/installation/installer.py:103 in run
return self._do_install(local_repo)
20 /opt/poetry/.poetry/lib/poetry/installation/installer.py:235 in _do_install
ops = solver.solve(use_latest=self._whitelist)
19 /opt/poetry/.poetry/lib/poetry/puzzle/solver.py:65 in solve
packages, depths = self._solve(use_latest=use_latest)
18 /opt/poetry/.poetry/lib/poetry/puzzle/solver.py:234 in _solve
self._package, self._provider, locked=locked, use_latest=use_latest
17 /opt/poetry/.poetry/lib/poetry/mixology/__init__.py:7 in resolve_version
return solver.solve()
16 /opt/poetry/.poetry/lib/poetry/mixology/version_solver.py:84 in solve
next = self._choose_package_version()
15 /opt/poetry/.poetry/lib/poetry/mixology/version_solver.py:397 in _choose_package_version
version = self._provider.complete_package(version)
14 /opt/poetry/.poetry/lib/poetry/puzzle/provider.py:437 in complete_package
repository=package.dependency.source_name,
13 /opt/poetry/.poetry/lib/poetry/repositories/pool.py:135 in package
package = repo.package(name, version, extras=extras)
12 /opt/poetry/.poetry/lib/poetry/repositories/pypi_repository.py:158 in package
return self.get_release_info(name, version).to_package(name=name, extras=extras)
11 /opt/poetry/.poetry/lib/poetry/repositories/pypi_repository.py:224 in get_release_info
"{}:{}".format(name, version), lambda: self._get_release_info(name, version)
10 /opt/poetry/.poetry/lib/poetry/_vendor/py3.7/cachy/repository.py:174 in remember_forever
val = value(callback)
9 /opt/poetry/.poetry/lib/poetry/_vendor/py3.7/cachy/helpers.py:6 in value
return val()
8 /opt/poetry/.poetry/lib/poetry/repositories/pypi_repository.py:224 in <lambda>
"{}:{}".format(name, version), lambda: self._get_release_info(name, version)
7 /opt/poetry/.poetry/lib/poetry/repositories/pypi_repository.py:304 in _get_release_info
info = self._get_info_from_urls(urls)
6 /opt/poetry/.poetry/lib/poetry/repositories/pypi_repository.py:419 in _get_info_from_urls
return self._get_info_from_sdist(urls["sdist"][0])
5 /opt/poetry/.poetry/lib/poetry/repositories/pypi_repository.py:447 in _get_info_from_sdist
return PackageInfo.from_sdist(filepath)
4 /opt/poetry/.poetry/lib/poetry/inspection/info.py:561 in from_sdist
return cls._from_sdist_file(path=path)
3 /opt/poetry/.poetry/lib/poetry/inspection/info.py:291 in _from_sdist_file
new_info = cls.from_directory(path=sdist_dir)
2 /opt/poetry/.poetry/lib/poetry/inspection/info.py:541 in from_directory
info = cls._pep517_metadata(path)
1 /opt/poetry/.poetry/lib/poetry/inspection/info.py:506 in _pep517_metadata
os.chdir(cwd.as_posix())
RuntimeError
generator didn't stop after throw()
at /usr/local/lib/python3.7/contextlib.py:161 in __exit__
157│ # by 'except BaseException'.
158│ if sys.exc_info()[1] is value:
159│ return False
160│ raise
→ 161│ raise RuntimeError("generator didn't stop after throw()")
162│
163│
164│ class _AsyncGeneratorContextManager(_GeneratorContextManagerBase,
165│ AbstractAsyncContextManager):
@abn, apologies for the late response. That issue occurred when following the instructions verbatim on the homepage. Per @sinoroc, I uninstalled per the homepage instructions followed by an install via pipx
. Everything seems to function properly after that.
Same issue here, with poetry 1.1.4 installed via get-poetry.py
script
% poetry add ruamel.yaml
Using version ^0.16.12 for ruamel.yaml
Updating dependencies
Resolving dependencies... (0.8s)
RuntimeError
generator didn't stop after throw()
at /usr/lib/python3.7/contextlib.py:161 in __exit__
157│ # by 'except BaseException'.
158│ if sys.exc_info()[1] is value:
159│ return False
160│ raise
→ 161│ raise RuntimeError("generator didn't stop after throw()")
162│
163│
164│ class _AsyncGeneratorContextManager(_GeneratorContextManagerBase,
165│ AbstractAsyncContextManager):
Update: in the same environment, for example poetry add boto3
works fine.
Same problem here trying to run poetry add
for a private package on our internal repository server.
Needs to reinstall poetry to fix.
I've debugged this issue a bit and it appears that bundled virtualenv
package doesn't have a seed.via_app_data
module. Exception from contextlib looks like a bug in contextlib itself, not sure.
> /home/vvk/.poetry/lib/poetry/inspection/info.py(462)_pep517_metadata()
-> EnvManager.build_venv(venv_dir.as_posix())
(Pdb)
ModuleNotFoundError: No module named 'virtualenv.seed.via_app_data'
(Pdb) import traceback
(Pdb) traceback.print_exc()
Traceback (most recent call last):
File "/home/vvk/.poetry/lib/poetry/_vendor/py3.7/poetry/core/utils/helpers.py", line 41, in temporary_directory
yield name
File "/home/vvk/.poetry/lib/poetry/inspection/info.py", line 462, in _pep517_metadata
EnvManager.build_venv(venv_dir.as_posix())
File "/home/vvk/.poetry/lib/poetry/utils/env.py", line 808, in build_venv
str(path),
File "/home/vvk/.poetry/lib/poetry/_vendor/py3.7/virtualenv/run/__init__.py", line 26, in cli_run
of_session = session_via_cli(args, options, setup_logging)
File "/home/vvk/.poetry/lib/poetry/_vendor/py3.7/virtualenv/run/__init__.py", line 42, in session_via_cli
parser, elements = build_parser(args, options, setup_logging)
File "/home/vvk/.poetry/lib/poetry/_vendor/py3.7/virtualenv/run/__init__.py", line 69, in build_parser
SeederSelector(interpreter, parser),
File "/home/vvk/.poetry/lib/poetry/_vendor/py3.7/virtualenv/run/plugin/seeders.py", line 8, in __init__
possible = self.options("virtualenv.seed")
File "/home/vvk/.poetry/lib/poetry/_vendor/py3.7/virtualenv/run/plugin/base.py", line 39, in options
cls._OPTIONS = cls.entry_points_for(key)
File "/home/vvk/.poetry/lib/poetry/_vendor/py3.7/virtualenv/run/plugin/base.py", line 18, in entry_points_for
return OrderedDict((e.name, e.load()) for e in cls.entry_points().get(key, {}))
File "/home/vvk/.poetry/lib/poetry/_vendor/py3.7/virtualenv/run/plugin/base.py", line 18, in <genexpr>
return OrderedDict((e.name, e.load()) for e in cls.entry_points().get(key, {}))
File "/home/vvk/.poetry/lib/poetry/_vendor/py3.7/importlib_metadata/__init__.py", line 105, in load
module = import_module(match.group('module'))
File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'virtualenv.seed.via_app_data'
% cat /home/vvk/.poetry/lib/poetry/_vendor/py3.7/virtualenv/version.py
from __future__ import unicode_literals;
__version__ = "20.0.31"
% ls -1 /home/vvk/.poetry/lib/poetry/_vendor/py3.7/virtualenv/seed/
__init__.py
__pycache__
embed
seeder.py
wheels
Was getting pretty frustrated by this but then I deleted my poetry.lock and recreated my virtual environment. Everything works fine now. I suppose I had some very outdated dependency in the lock file.
nothing helps me, getting this error again and again
Updating dependencies
Resolving dependencies... (10.2s)
RuntimeError
generator didn't stop after throw()
at /usr/lib/python3.8/contextlib.py:162 in __exit__
158│ # by 'except BaseException'.
159│ if sys.exc_info()[1] is value:
160│ return False
161│ raise
→ 162│ raise RuntimeError("generator didn't stop after throw()")
163│
164│
165│ class _AsyncGeneratorContextManager(_GeneratorContextManagerBase,
166│ AbstractAsyncContextManager):
nothing helps me, getting this error again and again
Updating dependencies Resolving dependencies... (10.2s) RuntimeError generator didn't stop after throw() at /usr/lib/python3.8/contextlib.py:162 in __exit__ 158│ # by 'except BaseException'. 159│ if sys.exc_info()[1] is value: 160│ return False 161│ raise → 162│ raise RuntimeError("generator didn't stop after throw()") 163│ 164│ 165│ class _AsyncGeneratorContextManager(_GeneratorContextManagerBase, 166│ AbstractAsyncContextManager):
somewhy even when venv was activated global command was pointed to local version of poetry, non installd to venv virtual. I removed global poetry first and then double checked with 'which poetry' command that it uses the exactly version in current venv then everething started working as expected.
p.s. yes, as told above, python -m poetry install
should do the trick localy in venv
Reinstalling poetry and/or running poetry add
from inside of its own venv
(the one entered via poetry shell
) solved this issue for me.
As recommended by a few folks here, updating my (global) poetry install fixed the issue. In my case this was simply the command poetry self update
as described in the docs.
This does not reproduce on any recent version -- closing as such.
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.
-vvv
option).Issue
When I try to do 'poetry add', a RuntimeError is raised. I've encountered this issue with different pip modules. Here is the relevant data: