【问题标题】:No matching distribution found for cplex未找到 cplex 的匹配分布
【发布时间】:2025-12-21 11:00:06
【问题描述】:

使用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,你可以在那里查看是否有人有类似的问题。
  • 在页面pypi.org/project/cplex/#files 你可以看到只有 Python 3.6 和 3.7 的版本 - 如果你使用不同的版本,你必须安装 Python 3.7

标签: python cplex manjaro


【解决方案1】:

CPLEX python API(python 包cplex)仅适用于 python 3.6 和 3.7 的 PyPI(如 cmets 中的 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

【讨论】:

    【解决方案2】:

    我于 2021 年 1 月在 conda 3.8 环境中尝试了 Matt's brilliant workaround(感谢伙伴!),它几乎成功了。我只需要在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 付出的所有努力。

    干杯!
    安德烈斯

    【讨论】:

      最近更新 更多