Poetry add failing with RuntimeError
See original GitHub issue- 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: 19.6.0 Darwin Kernel Version 19.6.0: Mon Aug 31 22:12:52 PDT 2020; root:xnu-6153.141.2~1/RELEASE_X86_64 x86_64
- Poetry version: 1.1.3
- Link of a Gist with the contents of your pyproject.toml file: https://gist.github.com/jkary/0d699c7fbfdb340a5448845b69a3d0c2
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:
JKARY-M-V80G:svs-alto jkary$ poetry self update
Updating to 1.1.3
- Downloading poetry-1.1.3-darwin.tar.gz 100%
Poetry (1.1.3) is installed now. Great!
JKARY-M-V80G:svs-alto jkary$ poetry add ansible
Using version ^2.10.1 for ansible
Updating dependencies
Resolving dependencies... (5.1s)
RuntimeError
generator didn't stop after throw()
at ~/.pyenv/versions/3.7.2/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):
JKARY-M-V80G:svs-alto jkary$ poetry --version
Poetry version 1.1.3
JKARY-M-V80G:svs-alto jkary$ python --version
Python 3.7.2
JKARY-M-V80G:svs-alto jkary$ poetry add -vvv ansible
Using virtualenv: /Users/jkary/src/python/svs-alto/.venv
PyPI: No release information found for ansible-1.9.0, skipping
PyPI: No release information found for ansible-2.0.0, skipping
PyPI: 166 packages found for ansible *
Using version ^2.10.1 for ansible
Updating dependencies
Resolving dependencies...
1: fact: svs-alto is 0.1.0
1: derived: svs-alto
1: fact: svs-alto depends on python-xml2dict (^0.1.1)
1: fact: svs-alto depends on jupyter (^1.0.0)
1: fact: svs-alto depends on pandas (^1.1.0)
1: fact: svs-alto depends on openpyxl (^3.0.4)
1: fact: svs-alto depends on yaml-1.3 (^0.1.0)
1: fact: svs-alto depends on pyyaml (^5.3.1)
1: fact: svs-alto depends on json2yaml (^1.1.1)
1: fact: svs-alto depends on xlrd (^1.2.0)
1: fact: svs-alto depends on jinja2 (^2.11.2)
1: fact: svs-alto depends on virl2_client (2.1.0-rc.1 lib/virl2-client)
1: fact: svs-alto depends on ucsmsdk (^0.9.10)
1: fact: svs-alto depends on ansible (^2.10.1)
1: fact: svs-alto depends on black (^19.10b0)
1: fact: svs-alto depends on pytest (^6.0.1)
1: fact: svs-alto depends on black (^19.10b0)
1: fact: svs-alto depends on pytest (^6.0.1)
1: selecting svs-alto (0.1.0)
1: derived: pytest (^6.0.1)
1: derived: black (^19.10b0)
1: derived: ansible (^2.10.1)
1: derived: ucsmsdk (^0.9.10)
1: derived: virl2_client (2.1.0-rc.1 lib/virl2-client)
1: derived: jinja2 (^2.11.2)
1: derived: xlrd (^1.2.0)
1: derived: json2yaml (^1.1.1)
1: derived: pyyaml (^5.3.1)
1: derived: yaml-1.3 (^0.1.0)
1: derived: openpyxl (^3.0.4)
1: derived: pandas (^1.1.0)
1: derived: jupyter (^1.0.0)
1: derived: python-xml2dict (^0.1.1)
1: fact: pytest (6.1.1) depends on attrs (>=17.4.0)
1: fact: pytest (6.1.1) depends on iniconfig (*)
1: fact: pytest (6.1.1) depends on packaging (*)
1: fact: pytest (6.1.1) depends on pluggy (>=0.12,<1.0)
1: fact: pytest (6.1.1) depends on py (>=1.8.2)
1: fact: pytest (6.1.1) depends on toml (*)
1: fact: pytest (6.1.1) depends on importlib-metadata (>=0.12)
1: fact: pytest (6.1.1) depends on atomicwrites (>=1.0)
1: fact: pytest (6.1.1) depends on colorama (*)
1: selecting pytest (6.1.1)
1: derived: colorama (*)
1: derived: atomicwrites (>=1.0)
1: derived: importlib-metadata (>=0.12)
1: derived: toml (*)
1: derived: py (>=1.8.2)
1: derived: pluggy (>=0.12,<1.0)
1: derived: packaging (*)
1: derived: iniconfig (*)
1: derived: attrs (>=17.4.0)
1: fact: black (19.10b0) depends on click (>=6.5)
1: fact: black (19.10b0) depends on attrs (>=18.1.0)
1: fact: black (19.10b0) depends on appdirs (*)
1: fact: black (19.10b0) depends on toml (>=0.9.4)
1: fact: black (19.10b0) depends on typed-ast (>=1.4.0)
1: fact: black (19.10b0) depends on regex (*)
1: fact: black (19.10b0) depends on pathspec (>=0.6,<1)
1: selecting black (19.10b0)
1: derived: pathspec (>=0.6,<1)
1: derived: regex (*)
1: derived: typed-ast (>=1.4.0)
1: derived: toml (>=0.9.4)
1: derived: appdirs (*)
1: derived: attrs (>=18.1.0)
1: derived: click (>=6.5)
PyPI: No release information found for ansible-1.9.0, skipping
PyPI: No release information found for ansible-2.0.0, skipping
PyPI: 1 packages found for ansible >=2.10.1,<3.0.0
1: fact: ansible (2.10.1) depends on ansible-base (>=2.10.2,<2.11)
1: selecting ansible (2.10.1)
1: derived: ansible-base (>=2.10.2,<2.11)
PyPI: 1 packages found for ansible-base >=2.10.2,<2.11
1: fact: ucsmsdk (0.9.10) depends on pyparsing (*)
1: fact: ucsmsdk (0.9.10) depends on six (*)
1: selecting ucsmsdk (0.9.10)
1: derived: six (*)
1: derived: pyparsing (*)
1: fact: virl2-client (2.1.0-rc.1 /Users/jkary/src/python/svs-alto/lib/virl2-client) depends on requests (^2)
1: selecting virl2-client (2.1.0-rc.1 /Users/jkary/src/python/svs-alto/lib/virl2-client)
1: derived: requests (^2)
1: fact: jinja2 (2.11.2) depends on MarkupSafe (>=0.23)
1: selecting jinja2 (2.11.2)
1: derived: MarkupSafe (>=0.23)
1: selecting xlrd (1.2.0)
1: fact: json2yaml (1.1.1) depends on pyyaml (*)
1: fact: json2yaml (1.1.1) depends on pyaml (*)
1: fact: json2yaml (1.1.1) depends on docopt (*)
1: selecting json2yaml (1.1.1)
1: derived: docopt (*)
1: derived: pyaml (*)
1: selecting pyyaml (5.3.1)
1: fact: yaml-1.3 (0.1.0) depends on ruamel.appconfig (*)
1: fact: yaml-1.3 (0.1.0) depends on ruamel.std.argparse (>=0.8)
1: selecting yaml-1.3 (0.1.0)
1: derived: ruamel.std.argparse (>=0.8)
1: derived: ruamel.appconfig (*)
1: fact: openpyxl (3.0.5) depends on jdcal (*)
1: fact: openpyxl (3.0.5) depends on et-xmlfile (*)
1: selecting openpyxl (3.0.5)
1: derived: et-xmlfile (*)
1: derived: jdcal (*)
1: fact: pandas (1.1.3) depends on python-dateutil (>=2.7.3)
1: fact: pandas (1.1.3) depends on pytz (>=2017.2)
1: fact: pandas (1.1.3) depends on numpy (>=1.15.4)
1: selecting pandas (1.1.3)
1: derived: numpy (>=1.15.4)
1: derived: pytz (>=2017.2)
1: derived: python-dateutil (>=2.7.3)
1: fact: jupyter (1.0.0) depends on notebook (*)
1: fact: jupyter (1.0.0) depends on qtconsole (*)
1: fact: jupyter (1.0.0) depends on jupyter-console (*)
1: fact: jupyter (1.0.0) depends on nbconvert (*)
1: fact: jupyter (1.0.0) depends on ipykernel (*)
1: fact: jupyter (1.0.0) depends on ipywidgets (*)
1: selecting jupyter (1.0.0)
1: derived: ipywidgets (*)
1: derived: ipykernel (*)
1: derived: nbconvert (*)
1: derived: jupyter-console (*)
1: derived: qtconsole (*)
1: derived: notebook (*)
1: selecting python-xml2dict (0.1.1)
1: selecting colorama (0.4.4)
1: selecting atomicwrites (1.4.0)
1: fact: importlib-metadata (2.0.0) depends on zipp (>=0.5)
1: selecting importlib-metadata (2.0.0)
1: derived: zipp (>=0.5)
1: selecting toml (0.10.1)
1: selecting py (1.9.0)
1: fact: pluggy (0.13.1) depends on importlib-metadata (>=0.12)
1: selecting pluggy (0.13.1)
1: fact: packaging (20.4) depends on pyparsing (>=2.0.2)
1: fact: packaging (20.4) depends on six (*)
1: selecting packaging (20.4)
1: derived: pyparsing (>=2.0.2)
1: selecting iniconfig (1.1.1)
1: selecting attrs (20.2.0)
1: selecting pathspec (0.8.0)
1: selecting regex (2020.10.15)
1: selecting typed-ast (1.4.1)
1: selecting appdirs (1.4.4)
1: selecting click (7.1.2)
PyPI: Getting info for ansible-base (2.10.2) from PyPI
PyPI: No dependencies found, downloading archives
PyPI: Downloading sdist: ansible-base-2.10.2.tar.gz
1: Version solving took 5.247 seconds.
1: Tried 1 solutions.
Stack trace:
26 ~/.poetry/lib/poetry/_vendor/py3.7/clikit/console_application.py:131 in run
129β parsed_args = resolved_command.args
130β
β 131β status_code = command.handle(parsed_args, io)
132β except KeyboardInterrupt:
133β status_code = 1
25 ~/.poetry/lib/poetry/_vendor/py3.7/clikit/api/command/command.py:120 in handle
118β def handle(self, args, io): # type: (Args, IO) -> int
119β try:
β 120β status_code = self._do_handle(args, io)
121β except KeyboardInterrupt:
122β if io.is_debug():
24 ~/.poetry/lib/poetry/_vendor/py3.7/clikit/api/command/command.py:171 in _do_handle
169β handler_method = self._config.handler_method
170β
β 171β return getattr(handler, handler_method)(args, io, self)
172β
173β def __repr__(self): # type: () -> str
23 ~/.poetry/lib/poetry/_vendor/py3.7/cleo/commands/command.py:92 in wrap_handle
90β self._command = command
91β
β 92β return self.handle()
93β
94β def handle(self): # type: () -> Optional[int]
22 ~/.poetry/lib/poetry/console/commands/add.py:174 in handle
172β
173β try:
β 174β status = self._installer.run()
175β except Exception:
176β self.poetry.file.write(original_content)
21 ~/.poetry/lib/poetry/installation/installer.py:103 in run
101β local_repo = Repository()
102β
β 103β return self._do_install(local_repo)
104β
105β def dry_run(self, dry_run=True): # type: (bool) -> Installer
20 ~/.poetry/lib/poetry/installation/installer.py:235 in _do_install
233β )
234β
β 235β ops = solver.solve(use_latest=self._whitelist)
236β else:
237β self._io.write_line("Installing dependencies from lock file")
19 ~/.poetry/lib/poetry/puzzle/solver.py:65 in solve
63β with self._provider.progress():
64β start = time.time()
β 65β packages, depths = self._solve(use_latest=use_latest)
66β end = time.time()
67β
18 ~/.poetry/lib/poetry/puzzle/solver.py:234 in _solve
232β try:
233β result = resolve_version(
β 234β self._package, self._provider, locked=locked, use_latest=use_latest
235β )
236β
17 ~/.poetry/lib/poetry/mixology/__init__.py:7 in resolve_version
5β solver = VersionSolver(root, provider, locked=locked, use_latest=use_latest)
6β
β 7β return solver.solve()
8β
16 ~/.poetry/lib/poetry/mixology/version_solver.py:84 in solve
82β while next is not None:
83β self._propagate(next)
β 84β next = self._choose_package_version()
85β
86β return self._result()
15 ~/.poetry/lib/poetry/mixology/version_solver.py:397 in _choose_package_version
395β version = locked
396β
β 397β version = self._provider.complete_package(version)
398β
399β conflict = False
14 ~/.poetry/lib/poetry/puzzle/provider.py:436 in complete_package
434β package.version.text,
435β extras=list(package.dependency.extras),
β 436β repository=package.dependency.source_name,
437β ),
438β )
13 ~/.poetry/lib/poetry/repositories/pool.py:135 in package
133β for idx, repo in enumerate(self._repositories):
134β try:
β 135β package = repo.package(name, version, extras=extras)
136β except PackageNotFound:
137β continue
12 ~/.poetry/lib/poetry/repositories/pypi_repository.py:162 in package
160β extras=None, # type: (Union[list, None])
161β ): # type: (...) -> Package
β 162β return self.get_release_info(name, version).to_package(name=name, extras=extras)
163β
164β def search(self, query):
11 ~/.poetry/lib/poetry/repositories/pypi_repository.py:228 in get_release_info
226β
227β cached = self._cache.remember_forever(
β 228β "{}:{}".format(name, version), lambda: self._get_release_info(name, version)
229β )
230β
10 ~/.poetry/lib/poetry/_vendor/py3.7/cachy/repository.py:174 in remember_forever
172β return val
173β
β 174β val = value(callback)
175β
176β self.forever(key, val)
9 ~/.poetry/lib/poetry/_vendor/py3.7/cachy/helpers.py:6 in value
4β def value(val):
5β if callable(val):
β 6β return val()
7β
8β return val
8 ~/.poetry/lib/poetry/repositories/pypi_repository.py:228 in <lambda>
226β
227β cached = self._cache.remember_forever(
β 228β "{}:{}".format(name, version), lambda: self._get_release_info(name, version)
229β )
230β
7 ~/.poetry/lib/poetry/repositories/pypi_repository.py:308 in _get_release_info
306β return data.asdict()
307β
β 308β info = self._get_info_from_urls(urls)
309β
310β data.requires_dist = info.requires_dist
6 ~/.poetry/lib/poetry/repositories/pypi_repository.py:423 in _get_info_from_urls
421β return self._get_info_from_wheel(platform_specific_wheels[0])
422β
β 423β return self._get_info_from_sdist(urls["sdist"][0])
424β
425β def _get_info_from_wheel(self, url): # type: (str) -> PackageInfo
5 ~/.poetry/lib/poetry/repositories/pypi_repository.py:451 in _get_info_from_sdist
449β self._download(url, str(filepath))
450β
β 451β return PackageInfo.from_sdist(filepath)
452β
453β def _download(self, url, dest): # type: (str, str) -> None
4 ~/.poetry/lib/poetry/inspection/info.py:561 in from_sdist
559β """
560β if path.is_file():
β 561β return cls._from_sdist_file(path=path)
562β
563β # if we get here then it is neither an sdist instance nor a file
3 ~/.poetry/lib/poetry/inspection/info.py:291 in _from_sdist_file
289β
290β # now this is an unpacked directory we know how to deal with
β 291β new_info = cls.from_directory(path=sdist_dir)
292β
293β if not info:
2 ~/.poetry/lib/poetry/inspection/info.py:541 in from_directory
539β info = cls.from_setup_files(path)
540β else:
β 541β info = cls._pep517_metadata(path)
542β except PackageInfoError:
543β if not info:
1 ~/.poetry/lib/poetry/inspection/info.py:506 in _pep517_metadata
504β )
505β finally:
β 506β os.chdir(cwd.as_posix())
507β
508β if info:
RuntimeError
generator didn't stop after throw()
at ~/.pyenv/versions/3.7.2/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):
JKARY-M-V80G:svs-alto jkary$
Issue Analytics
- State:
- Created 3 years ago
- Reactions:8
- Comments:18 (3 by maintainers)
Top Results From Across the Web
Python poetry install failure - invalid hashes - Stack Overflow
There are several issue reports about invalid hashes. One common cause is running multiple Poetry instances simultaneously;Β ...
Read more >History | Poetry - Python dependency management and ...
Fix an issue where poetry show --outdated failed with a runtime error related to direct origin dependencies (#6016). Fix an issue where only...
Read more >poetry - PyPI
Poetry helps you declare, manage and install dependencies of Python projects, ensuring you have the right stack everywhere. Poetry Install.
Read more >Poetry install fails inside GitHub actions on a private repo
5/x64/lib VIRTUALENV_PIP: 22.1.2 VENV: .venv/bin/activate RuntimeError Poetry could not find a pyproject.toml file in /home/runner/work/news/Β ...
Read more >Error: Replit: Package operation failed.
... -m poetry install Installing dependencies from lock file Package operations: 1 install, 0 updates, 0 removals β’ Installing pandas (1.3.0) RuntimeError ......
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
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 venvSame issue here, with poetry 1.1.4 installed via
get-poetry.py
scriptUpdate: in the same environment, for example
poetry add boto3
works fine.