Hey community,
I tried to run the following code via R with reticulate and pyomo based on the solver "cbc". The Python-code is working if I execute the code independently of R. Executing the code in R with the package "reticulate" doesn't work.
Information about the Python-code: A Simple Concrete Pyomo Model - Simple Models — Pyomo 6.1.2 documentation
Thanks in advance for your help!
Br, Alex
Code in R:
library("reticulate")
use_python("C:/Anaconda")
setwd("C:/Users/SimpleConcretePyomoModel")
source_python("C:/Users/SimpleConcretePyomoModel/SimpleConcretePyomoModel.py")
Code in Python:
from pyomo.environ import *
import pyutilib.subprocess.GlobalData
pyutilib.subprocess.GlobalData.DEFINE_SIGNAL_HANDLERS_DEFAULT = False
model = ConcreteModel()
model.x = Var([1,2], domain=NonNegativeReals)
model.OBJ = Objective(expr = 2*model.x[1] + 3*model.x[2])
model.Constraint1 = Constraint(expr = 3*model.x[1] + 4*model.x[2] >= 1)
opt = SolverFactory('cbc')
opt.solve(model)
Error in R
Error in py_run_file_impl(file, local, convert) :
RuntimeError: Attempting to use an unavailable solver.
The SolverFactory was unable to create the solver "cbc"
and returned an UnknownSolver object. This error is raised at the point
where the UnknownSolver object was used as if it were valid (by calling
method "solve").
The original solver was created with the following parameters:
type: cbc
_args: ()
options: {}
WARNING: Failed to create solver with name 'cbc': Could not execute the
command: 'C:\Program Files\cbc-win64\cbc.exe -stop'
Error message: [WinError 6] Das Handle ist ungültig
Additional information:
python: C:/Anaconda/python.exe
libpython: C:/Anaconda/python38.dll
pythonhome: C:/Anaconda
version: 3.8.8 (default, Apr 13 2021, 15:08:03) [MSC v.1916 64 bit (AMD64)]
Architecture: 64bit
numpy: C:/Anaconda/Lib/site-packages/numpy
numpy_version: 1.20.3
pyomo_version: 5.7.2
reticulate_version: 1.20
cbc_version: 2.10.3
RStudio_version: 1.4.1717
Spyder_version: 5.0.5