3

我已经购买了 cplex 订阅并收到了要使用的密钥,但我不知道如何使用它,无论我尝试什么,我都会不断收到“没有密钥,请在此处购买 cplex”错误。

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

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

我错过了什么?

4

1 回答 1

3

可以在此处找到用于输入 CPLEX API 密钥的官方文档(您可能已经看过这个)。本文档假定您已安装 CPLEX Optimization Studio 的社区版(又名“免费版”),并且可以在此处找到下载链接。如果您愿意,您可以这样做,并且您应该启动并运行。

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

如果您在遵循上述建议后仍然遇到问题,以下 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()))
于 2020-05-05T19:48:24.053 回答