Как установить ключ для использования полной версии CPLEX? - PullRequest
1 голос
/ 05 мая 2020

Я приобрел подписку на cplex и получил ключ для использования, но я не могу понять, как его использовать, что бы я ни пытался, я продолжаю получать ошибку «нет ключа, go buy cplex here».

Я использую cplex через docplex в ноутбуке jupyter, работающем в Ubuntu 20.04. Все элементы python устанавливаются с использованием anaconda, cplex и docplex были установлены с помощью указанной здесь команды conda install: https://developer.ibm.com/docloud/blog/2017/01/23/cplex-python-now-available-anaconda-cloud/

Кажется, это работает нормально, и я могу решить небольшие проблемы, но для более серьезных проблем возникает ошибка, предлагая мне купить полную версию продукта. У меня есть, и я установил переменную среды CPLEX_STUDIO_KEY, но ошибка остается. Я не могу найти какой-либо документации, кроме "set this env. Var". и ошибка предполагает, что вы не купили его, вместо того, чтобы помочь ..

Что мне не хватает?

1 Ответ

1 голос
/ 05 мая 2020

Официальную документацию для ввода вашего ключа CPLEX API можно найти здесь (вы, вероятно, уже видели это). В этой документации предполагается, что вы установили Community Edition (также известную как «бесплатная версия») CPLEX Optimization Studio, и вы можете найти ссылку для загрузки здесь . Вы можете сделать это, если хотите, и вы должны быть готовы к работе.

Альтернативой является использование недокументированной переменной среды CPLEX_CPXCHECKLIC_BINDIR. Это особенно полезно для Python пользователей, которые не могут выбрать установку остальной части CPLEX Optimization Studio. Когда вы устанавливали пакет cplex в свою среду anaconda (или для других, которые устанавливались через pip), он включал исполняемый файл с именем cpxchecklic. Его можно найти в каталоге bin или Scripts вашей среды Python. Если вы установите переменную среды CPLEX_CPXCHECKLIC_BINDIR в каталог, содержащий cpxchecklic, и вы уже правильно установили переменную среды CPLEX_STUDIO_KEY, тогда вы должны быть готовы к go.

Если вы продолжите Чтобы иметь проблемы после следования приведенному выше совету, следующий сценарий Python может пригодиться, чтобы помочь с устранением проблем, которые у вас возникли с вашим ключом API (пожалуйста, обновите свой вопрос выходными данными, если это так):

"""Tests Python Download-and-go setup.

usage: python test.py [API_KEY] [CPXCHECKLIC_BINDIR]

The API_KEY and CPXCHECKLIC_BINDIR arguments are optional.
"""
import os
import sys

import cplex

# Column limit for the Community Edition.
CPLEX_COLUMN_LIMIT = 1000

# Print the CPLEX version.
print("Version:", cplex.__version__)

# Allow the user to pass in the API key.
if len(sys.argv) > 1:
    os.environ["CPLEX_STUDIO_KEY"] = sys.argv[1]

# Allow the user to pass in the cpxchecklic bindir.
if len(sys.argv) > 2:
    os.environ["CPLEX_CPXCHECKLIC_BINDIR"] = sys.argv[2]

# Print the environment variables.
for var in ("CPLEX_STUDIO_KEY",
            "CPLEX_STUDIO_DIR1210",
            "CPLEX_CPXCHECKLIC_BINDIR"):
    print(var, "=", os.getenv(var))

# Create a model that will not work with the Community Edition.
cpx = cplex.Cplex()
cpx.variables.add(lb=[0.0] * (CPLEX_COLUMN_LIMIT + 1))

# Solve the model and print the solution status.
cpx.solve()
print("Status: {0} ({1})".format(cpx.solution.get_status_string(),
                                 cpx.solution.get_status()))
...