2016-03-21 2 views
0

J'ai compilé SCIP avec:Après avoir compilé SCIP avec IPOPT = true make PARTAGÉE = true scipoptlib, ne peut pas exécuter du modèle d'importation pyscipopt.scip

$ IPOPT=true make SHARED=true scipoptlib 

Il a compilé avec succès et je lancer python setup.py install de l'interface python. Cependant, quand je lance from pyscipopt.scip import Model en Python, je reçois le message d'erreur suivant:

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

et pour une raison quelconque, quand je lis un problème dans scip de zimpl, il montre toujours que le gestionnaire de contraintes quadratiques n'a pas de LAPACK pour le calcul de valeurs propres. Pourquoi ne puis-je pas optimiser via la bibliothèque LAPACK même si j'ai déjà compilé avec IPOPT? – Florence

+0

Mes questions ultimes sont de savoir comment utiliser lapack via IPOPT avec l'interface scip python – Florence

+0

Par ailleurs, la commande d'importation correcte est '' 'de pyscipopt import Model'''. – mattmilten

Répondre

0

Vous devez adapter le setup.py d'inclure également Ipopt comme bibliothèque lien.

Il est proche de la fin du fichier et est appelé libraries dans la définition du Cython extension.

+0

Salut, je me suis adapté en conséquence, mais la même erreur est apparue. J'ai adapté deux endroits du fichier setup.py. si usesharedlib: libraries = ['readline', 'z', 'gmp', 'ncurses', 'm', 'Ipopt'])] et après l'autre: libraries = ['readline', 'z', ' gmp ',' ncurses ',' m ',' Ipopt '])] L'ai-je édité correctement? – Florence

+0

J'ai recompilé scip avec IPOPT et j'ai adapté setup.py (j'ai ajouté 'ipopt' dans les bibliothèques). Lorsque j'exécute python setup.py install cette fois, j'ai le message d'erreur/usr/bin/ld: impossible de trouver -lipopt Collect2: erreur: ld retourné 1 erreur d'état de sortie: la commande 'gcc' a échoué avec le statut de sortie 1 – Florence

+0

Vouloir faire une compilation de l'exécutable scip avec VERBOSE = true pour vérifier quels indicateurs de liens sont utilisés pour lier avec Ipopt. Les plus similaires doivent être passés à l'appel de l'éditeur de liens dans le fichier python setup.py. En général, il serait probablement plus agréable si le "scipoptlib" avait déjà ses dépendances enregistrées, donc l'installation de l'interface Python n'a pas à deviner. – stefan