This issue is typically caused by a binary/library incompatibility (such as a missing glibc dependency within the Alpine-based Docker container), which causes Linux to throw a misleading "No such file or directory" error when the Python subprocess tries to launch the solver.
2026-07-20 00:42:57 ERROR [OPT-LocalEVopt] Optimization failed: [Errno 2] No such file or directory: '/opt/venv/lib/python3.13/site-packages/pulp/apis/../solverdir/cbc/linux/i64/cbc'
Traceback (most recent call last):
File "/app/src/interfaces/optimization_backends/optimization_backend_local_evopt.py", line 141, in optimize
evopt_response = optimizer.solve()
File "/app/src/interfaces/optimization_backends/local_evopt/optimizer.py", line 716, in solve
self.problem.solve(solver)
File "/opt/venv/lib/python3.13/site-packages/pulp/pulp.py", line 2407, in solve
status = solver.actualSolve(self, **kwargs)
File "/opt/venv/lib/python3.13/site-packages/pulp/apis/coin_api.py", line 406, in actualSolve
return super().actualSolve(lp, **kwargs)
File "/opt/venv/lib/python3.13/site-packages/pulp/apis/coin_api.py", line 153, in actualSolve
return self.solve_CBC(lp, **kwargs)
File "/opt/venv/lib/python3.13/site-packages/pulp/apis/coin_api.py", line 230, in solve_CBC
cbc = subprocess.Popen(args, stdout=pipe, stderr=pipe, stdin=devnull)
File "/usr/local/lib/python3.13/subprocess.py", line 1039, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
pass_fds, cwd, env,
gid, gids, uid, umask,
start_new_session, process_group)
File "/usr/local/lib/python3.13/subprocess.py", line 1991, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/opt/venv/lib/python3.13/site-packages/pulp/apis/../solverdir/cbc/linux/i64/cbc'
When trying to use the
OPT-LocalEVoptoptimization backend on a Home Assistant OS installation running on an ASUS NUC 15 Pro (RNUC15CRHU700002 with Intel Core i7 Ultra processor, amd64 architecture), the optimization run fails with aFileNotFoundError. ThePuLPlibrary is unable to execute the bundledcbcsolver binary.This issue is typically caused by a binary/library incompatibility (such as a missing glibc dependency within the Alpine-based Docker container), which causes Linux to throw a misleading "No such file or directory" error when the Python subprocess tries to launch the solver.
Log Output
Environment