【问题标题】:How to solve the issue with python cplex installation?如何解决 python cplex 安装的问题?
【发布时间】:2017-01-30 10:46:55
【问题描述】:

我安装了 IBM ILOG CPLEX Optimization Studio 社区版

我有 64 位 Windows 7。

我的蟒蛇是Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32

Cplex 在MYCPLEXHOME\cplex\python\2.7\x64_win64 下。我在这个目录里做python setup.py install

然后我做:

import cplex

但我收到此错误:

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import cplex
  File "C:\Python27\lib\site-packages\cplex\__init__.py", line 41, in <module>
    from . import _internal
  File "C:\Python27\lib\site-packages\cplex\_internal\__init__.py", line 21, in <module>
    from . import _list_array_utils
  File "C:\Python27\lib\site-packages\cplex\_internal\_list_array_utils.py", line 14, in <module>
    from . import _pycplex as CPX
  File "C:\Python27\lib\site-packages\cplex\_internal\_pycplex.py", line 28, in <module>
    _pycplex_platform = swig_import_helper()
  File "C:\Python27\lib\site-packages\cplex\_internal\_pycplex.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pycplex_platform', fp, pathname, description)
  File "C:\Python27\lib\site-packages\cplex\_internal\_pycplex_platform.py", line 23, in <module>
    from cplex._internal.py27_cplex1270 import *
ImportError: DLL load failed: %1 is not a valid Win32 application.

我该如何解决这个问题?

【问题讨论】:

  • 我认为您将 32 位 Python 与 64 位 Cplex 混合在一起。对于 DLL,这些东西必须匹配。
  • IBM 网站上没有 32 位 Cplex。如何让它与 32 位 python 一起工作?

标签: python linear-programming solver cplex


【解决方案1】:

当我调用我的(旧的非主动使用的基于 Windows 的)python 分发时,它的输出类似于(由于基于 Anaconda 的分发而有点不同):

Python 3.4.4 |Continuum Analytics, Inc.| (default, Feb 16 2016, 09:54:04) [MSC v.1600 64 bit (AMD64)] on win32

不用太确定,我将其解读为:

  • 在 32 位系统上构建:on win32
  • 为 64 位系统构建:MSC v.1600 64 bit (AMD64)

在您的情况下,看起来您正在使用 Python (MSC v.1500 32 bit (Intel)) 的 32 位发行版,您将其与基于 64 位的 CPLEX 接口混合使用。那是行不通的!

所以你的步骤是:

  • 检查是否有基于 32 位的 CPLEX 接口并安装它
  • 如果没有,则需要重新安装python(编译为64位)

效果可能并不简单,但我强烈推荐基于 64 位的 Python(现在它甚至看起来更标准了)!

(欧文的评论快了一点)

【讨论】:

  • IBM 网站上没有 32 位 Cplex。如何让它与 32 位 python 一起工作?
  • 从哪里获得 64 位 python?我使用的是 Windows 7。
  • @alwbtc 谷歌搜索立即显示 32 位版本的 CPLEX。但问题是:是否有 32 位接口的 64 位版本(推荐)?我不知道。可以肯定的是,您可以使用 32 位 Python 在 64 位窗口上运行 32 位 CPLEX。但实际上,我强烈建议重新安装 Python!
  • @alwbtc 真的吗?我对得分如此之高的人提出的这些问题感到惊讶。你试过www.python.org :-) 吗? 64位目前更标准! (部分官方下载摘录:The binaries for AMD64 will also work on processors that implement the Intel 64 architecture. (Also known as the "x64" architecture, and formerly known as both "EM64T" and "x86-64".) They will not work on Intel Itanium Processors (formerly "IA-64").
  • 好吧,我以为它只适用于 AMD 机器。 32 位 cplex 下载链接在哪里?可以给我链接吗?
【解决方案2】:

对于 CPLEX 12.7,Windows 上没有 32 位安装程序。请在此处查看detailed system requirements。如果您想使用 32 位 Python,则必须使用旧版本(例如 CPLEX 12.6.3)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-25
    • 2021-04-23
    • 2021-07-14
    • 2019-11-16
    • 2021-03-06
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    相关资源
    最近更新 更多