Skip to content

Instantly share code, notes, and snippets.

@vslotman
Created July 4, 2023 19:03
Show Gist options
  • Save vslotman/2b44bd96bd4c0b2b1498baf233b745d1 to your computer and use it in GitHub Desktop.
Save vslotman/2b44bd96bd4c0b2b1498baf233b745d1 to your computer and use it in GitHub Desktop.
Poetry debug log
$ poetry add scipy -vvv > poetry.log
Stack trace:
4 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\puzzle\solver.py:155 in _solve
153│
154│ try:
→ 155│ result = resolve_version(self._package, self._provider)
156│
157│ packages = result.packages
3 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\mixology\__init__.py:18 in resolve_version
16│ solver = VersionSolver(root, provider)
17│
→ 18│ return solver.solve()
19│
2 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\mixology\version_solver.py:163 in solve
161│ next: str | None = self._root.name
162│ while next is not None:
→ 163│ self._propagate(next)
164│ next = self._choose_package_version()
165│
1 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\mixology\version_solver.py:202 in _propagate
200│ # where that incompatibility will allow us to derive new assignments
201│ # that avoid the conflict.
→ 202│ root_cause = self._resolve_conflict(incompatibility)
203│
204│ # Back jumping erases all the assignments we did at the previous
SolveFailure
The current project's Python requirement (>=3.10,<4.0) is not compatible with some of the required packages Python requirement:
- scipy requires Python <3.13,>=3.9, so it will not be satisfied for Python >=3.13,<4.0
Because no versions of scipy match >1.11.1,<2.0.0
and scipy (1.11.1) requires Python <3.13,>=3.9, scipy is forbidden.
So, because double-pendula depends on scipy (^1.11.1), version solving failed.
at ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\mixology\version_solver.py:416 in _resolve_conflict
412│ )
413│ self._log(f'! which is caused by "{most_recent_satisfier.cause}"')
414│ self._log(f"! thus: {incompatibility}")
415│
→ 416│ raise SolveFailure(incompatibility)
417│
418│ def _choose_package_version(self) -> str | None:
419│ """
420│ Tries to select a version of a required package.
The following error occurred when trying to handle this error:
Stack trace:
11 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\cleo\application.py:327 in run
325│
326│ try:
→ 327│ exit_code = self._run(io)
328│ except BrokenPipeError:
329│ # If we are piped to another process, it may close early and send a
10 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\console\application.py:190 in _run
188│ self._load_plugins(io)
189│
→ 190│ exit_code: int = super()._run(io)
191│ return exit_code
192│
9 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\cleo\application.py:431 in _run
429│ io.input.interactive(interactive)
430│
→ 431│ exit_code = self._run_command(command, io)
432│ self._running_command = None
433│
8 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\cleo\application.py:473 in _run_command
471│
472│ if error is not None:
→ 473│ raise error
474│
475│ return terminate_event.exit_code
7 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\cleo\application.py:457 in _run_command
455│
456│ if command_event.command_should_run():
→ 457│ exit_code = command.run(io)
458│ else:
459│ exit_code = ConsoleCommandEvent.RETURN_CODE_DISABLED
6 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\cleo\commands\base_command.py:119 in run
117│ io.input.validate()
118│
→ 119│ status_code = self.execute(io)
120│
121│ if status_code is None:
5 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\cleo\commands\command.py:62 in execute
60│
61│ try:
→ 62│ return self.handle()
63│ except KeyboardInterrupt:
64│ return 1
4 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\console\commands\add.py:271 in handle
269│ self.installer.whitelist([r["name"] for r in requirements])
270│
→ 271│ status = self.installer.run()
272│
273│ if status == 0 and not self.option("dry-run"):
3 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\installation\installer.py:104 in run
102│ self.verbose(True)
103│
→ 104│ return self._do_install()
105│
106│ def dry_run(self, dry_run: bool = True) -> Installer:
2 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\installation\installer.py:241 in _do_install
239│ source_root=self._env.path.joinpath("src")
240│ ):
→ 241│ ops = solver.solve(use_latest=self._whitelist).calculate_operations()
242│ else:
243│ self._io.write_line("Installing dependencies from lock file")
1 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\puzzle\solver.py:72 in solve
70│ with self._progress(), self._provider.use_latest_for(use_latest or []):
71│ start = time.time()
→ 72│ packages, depths = self._solve()
73│ end = time.time()
74│
SolverProblemError
The current project's Python requirement (>=3.10,<4.0) is not compatible with some of the required packages Python requirement:
- scipy requires Python <3.13,>=3.9, so it will not be satisfied for Python >=3.13,<4.0
Because no versions of scipy match >1.11.1,<2.0.0
and scipy (1.11.1) requires Python <3.13,>=3.9, scipy is forbidden.
So, because double-pendula depends on scipy (^1.11.1), version solving failed.
at ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\puzzle\solver.py:161 in _solve
157│ packages = result.packages
158│ except OverrideNeeded as e:
159│ return self._solve_in_compatibility_mode(e.overrides)
160│ except SolveFailure as e:
→ 161│ raise SolverProblemError(e)
162│
163│ combined_nodes = depth_first_search(PackageNode(self._package, packages))
164│ results = dict(aggregate_package_nodes(nodes) for nodes in combined_nodes)
165│
• Check your dependencies Python requirement: The Python requirement can be specified via the `python` or `markers` properties
For scipy, a possible solution would be to set the `python` property to ">=3.10,<3.13"
https://python-poetry.org/docs/dependency-specification/#python-restricted-dependencies,
https://python-poetry.org/docs/dependency-specification/#using-environment-markers
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment