cplex - 如何设置使用完整版 CPLEX 的 key ?

标签 cplex docplex

我已经购买了一个 cplex 订阅并收到了一个使用 key ,但我不知道如何使用它,无论我尝试什么,我总是收到“没有 key ,去这里购买 cplex”错误。

我在 Ubuntu 20.04 中运行的 jupyter notebook 中通过 docplex 使用 cplex。所有 python 东西都是使用 anaconda 安装的,cplex 和 docplex 已使用此处列出的 conda 安装命令安装:https://developer.ibm.com/docloud/blog/2017/01/23/cplex-python-now-available-anaconda-cloud/

这似乎工作正常,我可以解决小问题,但对于较大的问题,它会抛出一个错误,告诉我购买完整的产品。我已经设置了 CPLEX_STUDIO_KEY 环境变量,但错误仍然存​​在。除了“设置此环境变量”之外,我找不到任何 文档。并且错误只是假设您没有购买它而不是提供任何帮助..

我错过了什么?

最佳答案

可以找到用于输入 CPLEX API key 的官方文档 here (你可能已经看过了)。本文档假设您已经安装了 CPLEX Optimization Studio 的社区版(也称为“免费版”),并且您可以找到一个下载链接 here .如果愿意,您可以这样做,并且应该启动并运行。

另一种方法是使用未记录的 CPLEX_CPXCHECKLIC_BINDIR 环境变量。这对于可能不会选择安装 CPLEX Optimization Studio 的其余部分的 Python 用户特别有用。当您将 cplex 包安装到您的 anaconda 环境中时(或通过 pip 安装的其他环境),它包含一个名为 cpxchecklic 的可执行文件。这可以在您的 Python 环境的 binScripts 目录中找到。如果您将 CPLEX_CPXCHECKLIC_BINDIR 环境变量设置为包含 cpxchecklic 的目录,并且您已经正确设置了 CPLEX_STUDIO_KEY 环境变量,那么您应该一切顺利。

如果您在遵循上述建议后仍然遇到问题,以下 Python 脚本可能会派上用场,以帮助解决您在使用 API key 时遇到的问题(如果是这种情况,请使用输出更新您的问题) :

"""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()))

关于cplex - 如何设置使用完整版 CPLEX 的 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61619812/

相关文章:

c++ - 如何访问矩阵形式的所有变量的解值?

python - IBM Watson CPLEX 在求解 LP 文件时不显示变量,也没有解决方案

python-3.x - docplex.cp.model 比穷举搜索慢

python - 为什么我在使用 CPLEX 的 Pyomo 中遇到不允许的字符错误?

c++ - 创建 IloObjective 的正确方法

scipy - CPLEX 与使用 SCIP 的 CPLEX 的速度

visual-studio-2015 - CPLEX 12.8,Visual Studio 2015错误: Cannot open include file

python - model.solve() 方法对于 Python 的 DOcplex 不起作用 ("CPLEX DLL not found")

python - Docplex 添加约束太慢