2016-03-21 17 views
0

Ich habe scip zusammengestellt mit:Nach scip mit IPOPT = true make SHARED = true scipoptlib kompilieren, können nicht von pyscipopt.scip Import Modell laufen

$ IPOPT=true make SHARED=true scipoptlib 

Es wurde erfolgreich kompiliert und ich laufe Python von installieren setup.py die Python-Schnittstelle. Allerdings, wenn ich from pyscipopt.scip import Model in Python ausführen, bekomme ich folgende Fehlermeldung:

ImportError: scip-3.2.1/interfaces/python/lib/libscipopt.so: undefined symbol: _ZTIN5Ipopt7JournalE 
+0

und aus irgendeinem Grund, wenn ich ein Problem in scip von zimpl gelesen habe, zeigt es immer noch quadratische Constraint Handler hat keine LAPACK für Eigenwertberechnung. Warum kann ich nicht durch die LAPACK-Bibliothek optimieren, selbst wenn ich bereits mit IPOPT kompiliert habe? – Florence

+0

Meine ultimative Fragen ist, wie benutze ich lapack durch IPOPT mit der Scip-Python-Schnittstelle – Florence

+0

Übrigens ist der richtige Import-Befehl '' 'von pyscipopt Import Model'''. – mattmilten

Antwort

0

Sie müssen die setup.py anzupassen auch Ipopt als Bibliothek enthalten, um zu verknüpfen.

Es ist nahe am Ende der Datei und heißt libraries in der Definition des Cython .

+0

Hallo, habe ich entsprechend angepasst, aber der gleiche Fehler msg popped up. Ich habe zwei Stellen der Datei setup.py angepasst. if usesharedlib: libraries = ['readline', 'z', 'gmp', 'ncurses', 'm', 'Ipopt'])] und nach dem else: libraries = ['readline', 'z', ' gmp ',' ncurses ',' m ',' Ipopt '])] Habe ich es richtig bearbeitet? – Florence

+0

Ich habe scip mit IPOPT kompiliert und setup.py angepasst (ich habe 'ipopt' in Bibliotheken hinzugefügt). Wenn ich diesmal python setup.py installiere, bekomme ich die Fehlermeldung/usr/bin/ld: kann -lipopt nicht finden Collect2: error: ld gab 1 exit zurück status error: Befehl 'gcc' ist fehlgeschlagen mit exit status 1 – Florence

+0

Sie könnten Ich möchte einen Build der ausführbaren scip-Datei mit VERBOSE = true erstellen, um zu prüfen, welche Linker-Flags verwendet werden, um mit Ipopt zu verknüpfen. Sehr ähnliche sollten an den Linker-Aufruf in python setup.py übergeben werden. Im Allgemeinen wäre es wahrscheinlich netter, wenn die "Abhängigkeiten" der "scipoptlib" bereits aufgezeichnet würden, so dass das Python-Interface-Setup nicht raten muss. – stefan