使用 conda 安装 glpk cvxopt

Posted

技术标签:

【中文标题】使用 conda 安装 glpk cvxopt【英文标题】:installing glpk cvxopt with conda 【发布时间】:2016-12-09 22:22:34 【问题描述】:

我已经建立了一个环境,所有包都由 conda 管理(即使是 gcc)。我想要做的是安装,支持 GLPK 的 cvxopt:

CVXOPT_BUILD_GLPK=1 pip install cvxopt 

这样做会直接导致

src/C/glpk.c:24:18: fatal error: glpk.h: No such file or directory
 #include <glpk.h>
                  ^
compilation terminated.
error: command 'gcc' failed with exit status 1

所以我用 conda 安装 glpk:

conda install -c conda-forge glpk=4.60

再试一次:

CVXOPT_BUILD_GLPK=1 pip install cvxopt 

得到错误:

src/C/umfpack.c:23:21: fatal error: umfpack.h: No such file or directory
 #include "umfpack.h"
                     ^
compilation terminated.
error: command 'gcc' failed with exit status 1

所以我尝试通过以下方式解决它:

conda install -c conda-forge scikit-umfpack=0.2.3

所以在这种情况下,CVXOPT_BUILD_GLPK=1 pip install cvxopt 是成功的,

但是,当我尝试运行 python 程序时:

Traceback (most recent call last):
  File "my_programme.py", line 19, in <module>
    from cvxopt import normal, matrix
  File "/home/me/anaconda2/lib/python2.7/site-packages/cvxopt/__init__.py", line 32, in <module>
    import cvxopt.base
ImportError: /home/me/anaconda2/lib/python2.7/site-packages/cvxopt/base.so: undefined symbol: _gfortran_st_write_done

我不知道如何解决这个问题....有什么帮助吗?谢谢你。我更喜欢使用 conda 管理所有程序....

编辑:后来我尝试了:

pip uninstall cvxopt
conda install -c jjhelmus cvxopt_glpk=1.1.6

然后我得到了这个错误:

  File "my_code.py", line 19, in <module>
    from cvxopt import normal, matrix
  File "/home/me/anaconda2/lib/python2.7/site-packages/cvxopt/__init__.py", line 32, in <module>
    import cvxopt.base
ImportError: liblapack.so.3gf: cannot open shared object file: No such file or directory

我真的不知道为什么这必须如此复杂,即使在我使用 conda 统一管理我的包之后......此外,在我做了所有这些混乱之后......我的系统也变得有问题。我对这一切感到非常沮丧......

现在...我正处于崩溃的边缘...我完全删除 conda 并安装 conda clean...然后做

conda install -c jjhelmus cvxopt_glpk=1.1.6

运行程序后,我得到:

Traceback (most recent call last):
  File "extract_small_confgs_from_GMC.py", line 19, in <module>
    from cvxopt import normal, matrix
  File "/home/me/anaconda2/lib/python2.7/site-packages/cvxopt/__init__.py", line 32, in <module>
    import cvxopt.base
ImportError: liblapack.so.3gf: cannot open shared object file: No such file or directory

天哪.....

【问题讨论】:

【参考方案1】:

我解决了我的问题:

conda install -c conda-forge glpk=4.60
conda install -c conda-forge cvxopt=1.1.8

基本上,我们需要使用一致的 condo-forge 的一切。例如他们的 glpk 和 cvxopt。

【讨论】:

以上是关于使用 conda 安装 glpk cvxopt的主要内容,如果未能解决你的问题,请参考以下文章

Pyomo+GLPK使用

关于Ubuntu环境下配置GLPK

如何在 Windows 7 64 位机器上为 anaconda 的 python 3.5 安装 cvxopt?

Python之CVXOPT模块

如何在Windows 10上安装GLXK for CVXPY?

如何在 Winpython 中安装 glpk-solver 和 pyomo