找不到匹配的cplex发行版。

6
在使用pip install cplex安装Python CPLEX API时,我遇到了以下错误:
Could not find a version that satisfies the requirement cplex (from versions: none) 
ERROR: No matching distribution found for cplex

我的Python和pip已经更新了。我刚安装了CPLEX优化器。我应该从哪里开始确定问题?


首先访问带有cplex的页面,看看是否有相关信息。也许没有适用于您的Python版本,比如2.7(太老)或3.8(太新),那么您就得使用不同的Python版本。如果代码在GitHub上,那么应该会有一个“Issues”页面,您可以在那里查看是否有人遇到了类似的问题。 - furas
在https://pypi.org/project/cplex/#files页面上,您可以看到仅针对Python 3.6和3.7版本的程序版本 - 如果您使用不同版本,则必须安装Python 3.7。 - furas
2个回答

3
CPLEX python API(python包)仅适用于Python 3.6和3.7(正如furas在评论中指出的那样)。但是,您可以从PyPI下载源代码,并在其他版本的Python上运行它。在Python 3.8中运行良好(据我所知)。
要做到这一点:
  1. https://pypi.org/project/cplex/#files下载适合您系统的Wheel文件。
  2. 解压Wheel文件。
  3. cplex目录从cplex-12.10.0.3.data/purelib/复制到您Python路径中的某个位置。
  4. 使用python -c "import cplex; print(cplex.__version__)"进行测试。这应该打印CPLEX版本,例如12.10.0.0

0

我在2021年1月尝试了Matt的绝妙解决方法(谢谢你,伙计!),在conda 3.8环境中几乎成功。我只需要编辑cplex内部的一个文件,以避免出现以下异常并使其正常工作:

Exception: CPLEX 12.10.0.0 is not compatible with this version of Python.

所以,为了让它更全面,这里是Matt的步骤,加上我必须添加的额外编辑:

  1. 从此处下载并解压轮子(在我的情况下,最接近的是Linux,x86,py37):https://pypi.org/project/cplex/#files
  2. 解压它,并确保purelib/cplex目录位于您的Python路径中(例如,通过在purelib目录中打开Python解释器进行操作)。
  3. 现在 import cplex 引发了上面的错误。可以通过编辑cplex/internal/_pycplex_platform.py中的version_info < (3, 8, 0)表达式,将其替换为例如version_info < (3, 9, 0)来避免。

现在,import cplex 将起作用!

请注意,这并不意味着安装一定成功。IBM开发人员设置版本保护的原因是有道理的。该库可能没有在Python 3.8上进行测试,因此此解决方法可能不稳定!但是,对于原型设计目的而言,它可能已经足够了。如果您遇到任何问题,请告诉我,再次感谢Matt做出的所有努力。

干杯!
Andres


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接