1

为了运行优化问题,我们将 Gurobi 6.0.4 与

  • Anaconda (2.2.0 版) Python (Python 2.7.9.) 上
  • 带有 2.6.32-504.16.2.el6.x86_64 内核的 Linux CentOS 版本 6.6(最终版)

遵循 Gurobi 的安装指南(在此处列出:http: //www.gurobi.com/documentation/6.0/quickstart_linux.pdf

一切都在第一步中解决了。Gurobi 已安装,可以获得许可证。此外,已根据手册设置了 PATH 变量(在 .bashrc 中),对 anaconda python 的引用进行了一些扩展(而不是 python 的其他本地版本(即 2.7 和 3.4):

export GUROBI_HOME="/opt/gurobi604/linux64"
export PATH="${PATH}:${GUROBI_HOME}/bin:${PATH}:opt/anaconda/bin"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${GUROBI_HOME}/lib"

按照我们执行的程序:python2.7 setup.py install在各自的目录/opt/gurobi604/linux64中。在此之后,您通常可以import gurobipy在 python 解释器中运行该命令而不会出现错误。对于旧版本的 Gurobi(如 5.6.3),这非常有效。

对于 6.0.4,虽然我们不断收到错误:

 ImportError: /opt/anaconda/lib/python2.7/site-packages/gurobipy/gurobipy.so: undefined symbol: _Py_FalseStruct

这是非常可重现的,无论我们是否将 anaconda 也放在全局路径中,并检查 bash 是否有任何环境变量覆盖,但事实并非如此。

在 Windows 8 上,Gurobi 6.0.4 和 Anaconda Python 2.2.0 可以毫无问题地协同工作。

也从这里应用提示:Linux 上的 Python 模块错误 没有解决。

有没有其他人在使用这种工具组合时遇到过这些问题?谢谢。

4

2 回答 2

2

该错误消息表明您在 Python 2.7 包目录中使用了 3.4 版的 Python 模块。如果您不清理构建之间的 Python 模块构建目录,则可能会发生这种情况。请尝试以下方法:

  1. 从 Python 2.7 安装中完全删除 2.7 包(例如删除 /opt/anaconda/lib/python2.7/site-packages/gurobipy)
  2. 从 Gurobi 安装中完全删除 Python 模块构建目录(例如 /opt/gurobi604/linux64/build)
  3. 重新运行 Python 2.7 模块的构建过程(例如在 /opt/gurobi604/linux64 中运行“python2 setup.py install”)

请注意,CentOS 目前是 Gurobi 不支持的平台。

于 2016-01-26T14:02:10.020 回答
0

谢谢你的提示,我想我们试过了,但没有以这种方式完成程序。我们试图清理系统,但在这种特殊情况下,机器上仍然有两个 python 版本(由于其他应用程序使用 3.4)。在这种情况下,我们的解决方案只是在 Ubuntu 14.04 VM 上重新安装所有内容。从那时起,没有发生进一步的问题。(我不知道最干净的解决方案。)

当我们更新到 Gurobi 6.5 时,我们遇到了一些类似的问题,但是当正确解决通常的路径问题时,这可以解决。

无论如何感谢您的回复,我认为这真的会帮助我们进行下一步,然后是干净的部署:-)

于 2016-01-27T17:38:10.157 回答