J'essaie de mettre en œuvre un problème d'optimisation simple dans pyomo en utilisant le solveur cplex dans UBUNTU. Mon programme fonctionne bien avec le solveur glpk. Maintenant, j'ai installé cplex, docplex en utilisant conda mais j'ai reçu un avertissement d'erreur lors de la résolution. il n'a pas pu localiser le fichier exécutable cplex

AVERTISSEMENT: impossible de localiser l'exécutable 'cplex', qui est requis pour le solveur
ERREUR: exception inattendue lors de l'exécution du modèle: Aucun exécutable trouvé pour le solveur 'cplex' code d'erreur: 1
retval: Aucun

J'ai ajouté les lignes ci-dessous dans le fichier .bashrc mais je n'ai toujours pas pu obtenir le résultat

export PATH="/home/yash/anaconda3/envs/my_env/lib/python3.6/site-packages/docplex:$PATH"
export PATH="/home/yash/anaconda3/envs/my_env/lib/python3.6/site-packages/cplex:$PATH"
1
dinesh singamsetti 19 juin 2019 à 15:01

3 réponses

Meilleure réponse

À partir du code source, nous peut voir que pyomo est fourni avec plusieurs interfaces de solveur CPLEX. L'une de ces interfaces nécessite que l'exécutable cplex "(c'est-à-dire le CPLEX" interactif ") se trouve dans votre PATH et je pense que c'est la valeur par défaut. Cependant, lorsque vous installez le package anaconda cplex, vous le faites pas obtenir cet exécutable. Cela explique en partie le message d'erreur que vous recevez.

Si vous souhaitez utiliser l’interface CPLEXSHELL (c’est-à-dire celle qui s’exécute sur CPLEX interactive), vous devrez installer l’une des éditions d’IBM ILOG CPLEX Optimization Studio (par exemple, la version gratuite Community Edition) puis mettez à jour votre PATH pour qu'il pointe vers COS_INSTALL_DIR/cplex/bin/PLATFORM (où COS_INSTALL_DIR est l'emplacement où vous avez installé CPLEX Optimization Studio et PLATFORM est la plate-forme sur laquelle vous avez installé (par exemple, {{X5) }})).

Alternativement, et je pense que c'est ce que vous essayez vraiment de faire, si vous souhaitez utiliser l'interface pyomo qui se connecte à l'API CPLEX Python, il vous suffit de corriger vos variables d'environnement.

Au lieu de:

export PATH="/home/yash/anaconda3/envs/my_env/lib/python3.6/site-packages/cplex:$PATH"

Essayez d'utiliser:

export PYTHONPATH="/home/yash/anaconda3/envs/my_env/lib/python3.6/site-packages:$PYTHONPATH"

De plus, ce n'est pas tout à fait clair, mais il semble presque que vous ayez installé le package cplex dans un environnement virtuel Python (aka, un virtualenv). Si tel est le cas, il vous suffit d '"activer" le virtualenv, et le package cplex sera automatiquement accessible. Par exemple, les éléments suivants peuvent fonctionner pour vous:

cd /home/yash/anaconda3/envs/my_env/
source bin/activate
# use pyomo and cplex here
# when you're done, deactivate the virtualenv, like so:
deactivate
0
rkersh 24 juin 2019 à 23:02

L'installation de CPLEX avec conda n'installe que la bibliothèque python et le moteur d'exécution pour cette bibliothèque python. Cela n'installe pas ce qui n'est pas nécessaire pour que la bibliothèque s'exécute.

Si vous cherchez l'exécutable cplex, vous voulez installer CPLEX Community Edition puis exécutez [rép_install] /python/setup.py mentionné ci-dessus par Xavier.

Je pense que vous pouvez vous inscrire et télécharger CPLEX CE ici: https : //www.ibm.com/account/reg/us-en/signup? formid = urx-20028

0
Viu-Long Kong 19 juin 2019 à 15:11

Avez-vous exécutez [installDir]/python/setup.py de votre environnement Python?

0
Xavier Nodet 19 juin 2019 à 14:08