Can‘t find Gurobi executable (Ubuntu path variable issue?)

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Can‘t find Gurobi executable (Ubuntu path variable issue?)
Hallo zusammen,

Ich versuche, Gurobi zu installieren, um es als solver für pyomo (python) zu verwenden. Bei der Installation habe ich mich an die Anleitung auf der Gurobi HP gehalten (Resources —> getting started —> Quick start).
Ich habe sowohl die Installation in einer Anaconda env probiert (habe auch Anaconda komplett de- und reinstalliert und nochmal versucht), als auch ohne Anaconda env. Ich nutze Ubuntu, python 3.8, Gurobi 9.1 (Lizenz scheint zu funktionieren).
Ich habe sowohl in .bashrc als auch in .profile die entsprechenden Pfadvariablen angelegt.
Aber pyomo meldet als Fehler, dass es das gurobi executable nicht finden kann.

Kann mir jemand helfen? Ich wäre um jeden Tipp sehr dankbar!

Viele Grüße,

Anna


Hi,

es sieht so aus, als ob das ein Problem mit aktuellen Gurobi-Versionen ist, zumindest gibt es ein GitHub-Issue bei pyomo selbst: https://github.com/Pyomo/pyomo/issues/2132. Eine Lösung dafür gibt es dort aber leider auch nicht…


Hallo rupran,

Das ist sehr interessant, vielen lieben Dank, das scheint tatsächlich das Problem zu sein… wir kontaktieren nun die Gurobi developer für support.
Ich habe mir leider bei meinen verzweifelten Bemühungen heute meine Python Abhängigkeiten zerpflückt. Ich überlege gerade, mein OS einfach neu aufzusetzen, mit den empfohlenen Versionen aller Programme.

Weist du, ob jmd von der Fachschaft mir dabei assistieren würde? Ich habe Sorge, dass ich alles verschlimmere und es würde mir sehr helfen, jemandem direkt kontaktieren zu können.

Vielen Dank nochmal,

LG Anna


Am besten das nächste Mal einen Python Package Manager verwenden (pipenv und Alternativen), der Python Pakete ordnerlokal – weder nutzer- noch system-global – installiert.
Wenn du dir damit Python-Abhängigkeiten zerschießt, kannst du mit einem Befehl den ordnerlokalen Cache der Pakete löschen.


Anstatt sich mühsam lokal eine eigene Entwicklungsumgebung hochzuziehen, bietet es sich eventuell als Alternative an mit einem Container zu arbeiten, der das alles schon mitbringt. Auf Docker Hub stellt das Gurobi-Projekt zumindest schon mal offizielle Container-Abbilder bereit: https://hub.docker.com/r/gurobi

(Ist nur eine Anregung; selbst ausprobiert hab ich es nicht. Insofern kann ich nicht sagen, wie viel der Tipp wert ist.)


Wenn man sich den aktuellen Release-Tarball von https://packages.gurobi.com/9.1/gurobi9.1.2_linux64.tar.gz runterlädt, ist darin eine [m]gurobi.sh[/m] enthalten. Deren Inhalt ist relativ übersichtlich:

#!/bin/sh

if test -z "${GUROBI_HOME}" ; then
  echo
  echo "Environment variable GUROBI_HOME is not set.  Consult the Gurobi"
  echo "Quick Start Guide for information on how to set it."
  echo
fi

PATH=$GUROBI_HOME/bin:$PATH;export PATH
LD_LIBRARY_PATH=$GUROBI_HOME/lib:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH
PYTHONHOME=$GUROBI_HOME;export PYTHONHOME
PYTHONPATH=$GUROBI_HOME:$PYTHONPATH;export PYTHONPATH

PYTHONSTARTUP=$PYTHONHOME/lib/gurobi.py;export PYTHONSTARTUP

$PYTHONHOME/bin/python3.7 "$@"

Hallo Marcel, hallo Airhardt,

vielen Dank für eure Tipps!
@Marcel, ich denke ich gehe noch einen schritt weiter und verwende in Zukunft VMs wenn ich python verwende, dann kann ich auch einfach pip benutzen bzw. “hab nicht so viel zu verlieren”.
@Airhardt, das ist ein guter Hinweis, schaue ich mir mal genauer an! Könnte die schlankere Alternative zur VM sein, vermute ich, aber ich habe keine Ahnung von Docker.

Lieben Dank und LG
Anna


Ach so, übrigens…
auf Windows hat es tatsächlich einwandfrei funktioniert :slight_smile:


Für eine Python-Umgebung gleich eine ganze VM hochzuwuchten, fällt ein bisschen in die Kategorie “mit Kanonen auf Spatzen schießen”. :wink:
Bevor du das tust, schau dir am besten Pythons eingebautes Feature virtual environment an - das ist wesentlich leichtgewichtiger und sollte vermutlich genau das tun, was du wirklich brauchst.


Also mit Anaconda envs und auch pipenvs habe ich schlechte Erfahrungen gemacht, gibt es noch eine andere Alternative, die du ansprichst? :slight_smile:


Hmm okay, das wär schon genau das gewesen, was ich im Sinn hatte.


Oh Gott, ich habe evtl. gerade etwas bemerkt… das Pythonhome in der gurobi.sh existiert bei mir nicht in der Form :smiley: ok das könnte ich auch noch überprüfen. Danke!!