Open
Description
I have this code with python 3.11 and python 3.12:
import sys
print(sys.version_info)
from mip import Model, xsum, BINARY
# Create a model
model = Model(solver="highs")
# Add variables
x = [model.add_var(var_type=BINARY) for i in range(5)]
# Add constraints
model += xsum(x) <= 3
model += xsum(x) >= 1
# Set the objective
model.objective = xsum(x)
# Solve the model
model.optimize()
print("Objective:",model.objective_value)
# Check which solver was used
print(f"Solver used: {model.solver_name}")
I additionally installed highspy to be sure highs is available. Highs claims to be fastest open solver ;-) so I wanted to check this. On running I get error:
Traceback (most recent call last):
File "C:\Users\...\Python\xlsb-test\solver_check.py", line 7, in <module>
model = Model(solver="highs")
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\...\AppData\Roaming\Python\Python312\site-packages\mip\model.py", line 111, in __init__
self.constrs = mip.ConstrList(self)
^^^
UnboundLocalError: cannot access local variable 'mip' where it is not associated with a value
Using
...
model = Model(solver_name=HIGHS)
...
results in
An error occurred while loading the HiGHS library:
not enough values to unpack (expected 1, got 0)
Traceback (most recent call last):
File "C:\Users\...\Python\xlsb-test\solver_check.py", line 13, in <module>
model = Model(solver_name=HIGHS)
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\di29394\AppData\Roaming\Python\Python312\site-packages\mip\model.py", line 97, in __init__
self.solver = mip.highs.SolverHighs(self, name, sense)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\di29394\AppData\Roaming\Python\Python312\site-packages\mip\highs.py", line 690, in __init__
raise FileNotFoundError(
FileNotFoundError: HiGHS not found.Please install the `highspy` package, orset the `PMIP_HIGHS_LIBRARY` environment variable.
Exception ignored in: <function SolverHighs.__del__ at 0x000001E57F5DE160>
Traceback (most recent call last):
File "C:\Users\...\AppData\Roaming\Python\Python312\site-packages\mip\highs.py", line 728, in __del__
self._lib.Highs_destroy(self._model)
^^^^^^^^^
AttributeError: 'SolverHighs' object has no attribute '_lib'
As I said, highspy is installed. Setting PMIP_HIGHS_LIBRARY
to the highs.exe path results in
Traceback (most recent call last):
File "C:\Users\...\Python\xlsb-test\solver_check.py", line 13, in <module>
model = Model(solver_name=HIGHS)
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\...\AppData\Roaming\Python\Python312\site-packages\mip\model.py", line 97, in __init__
self.solver = mip.highs.SolverHighs(self, name, sense)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\...\AppData\Roaming\Python\Python312\site-packages\mip\highs.py", line 703, in __init__
self._model = highslib.Highs_create()
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\...\AppData\Roaming\Python\Python312\site-packages\cffi\api.py", line 914, in __getattr__
make_accessor(name)
File "C:\Users\...\AppData\Roaming\Python\Python312\site-packages\cffi\api.py", line 910, in make_accessor
accessors[name](name)
File "C:\Users\...\AppData\Roaming\Python\Python312\site-packages\cffi\api.py", line 840, in accessor_function
value = backendlib.load_function(BType, name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: function/symbol 'Highs_create' not found in library 'C:\ProgramData\SOLVERS\highs.exe': error 0x7f. Did you mean: 'Highs_clear'?
Exception ignored in: <function SolverHighs.__del__ at 0x000001B6481C6700>
Traceback (most recent call last):
File "C:\Users\...\AppData\Roaming\Python\Python312\site-packages\mip\highs.py", line 728, in __del__
self._lib.Highs_destroy(self._model)
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\...\AppData\Roaming\Python\Python312\site-packages\cffi\api.py", line 914, in __getattr__
make_accessor(name)
File "C:\Users\...\AppData\Roaming\Python\Python312\site-packages\cffi\api.py", line 910, in make_accessor
accessors[name](name)
File "C:\Users\...\AppData\Roaming\Python\Python312\site-packages\cffi\api.py", line 840, in accessor_function
value = backendlib.load_function(BType, name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: function/symbol 'Highs_destroy' not found in library 'C:\ProgramData\SOLVERS\highs.exe': error 0x7f
So there seems to exist no way for activating highs. Maybe the docs should be updated with a highs example.
Metadata
Metadata
Assignees
Labels
No labels