Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法在OSX 10.8/Ubuntu 14.x上编译pyglpk_Python_Macos_Glpk - Fatal编程技术网

Python 无法在OSX 10.8/Ubuntu 14.x上编译pyglpk

Python 无法在OSX 10.8/Ubuntu 14.x上编译pyglpk,python,macos,glpk,Python,Macos,Glpk,我正努力在OSX 10.8上编译PyGLPK。我已经安装了glpk和gmp 通过自制。我已确认以下文件均存在于 /usr/本地/包括 gmp.h gmpxx.h glpk.h 但我仍然得到以下错误 python setup.py build running build running build_ext building 'glpk' extension clang -fno-strict-aliasing -fno-common -dynamic -I/usr/local/include -

我正努力在OSX 10.8上编译PyGLPK。我已经安装了glpk和gmp 通过自制。我已确认以下文件均存在于 /usr/本地/包括

gmp.h
gmpxx.h
glpk.h
但我仍然得到以下错误

python setup.py build
running build
running build_ext
building 'glpk' extension
clang -fno-strict-aliasing -fno-common -dynamic -I/usr/local/include -I/usr/local/opt/sqlite/include -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/local/include -Isrc -I/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/glpk.c -o build/temp.macosx-10.9-x86_64-2.7/src/glpk.o -m32
clang -fno-strict-aliasing -fno-common -dynamic -I/usr/local/include -I/usr/local/opt/sqlite/include -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/local/include -Isrc -I/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/lp.c -o build/temp.macosx-10.9-x86_64-2.7/src/lp.o -m32
In file included from src/lp.c:24:
src/kkt.h:30:3: error: unknown type name 'LPXKKT'
  LPXKKT kkt;
  ^
src/lp.c:182:18: warning: implicit declaration of function 'lpx_read_model' is invalid in C99 [-Wimplicit-function-declaration]
      self->lp = lpx_read_model(model[0], model[1], model[2]);
                 ^
src/lp.c:182:16: warning: incompatible integer to pointer conversion assigning to 'glp_prob *' (aka 'struct glp_prob *') from 'int' [-Wint-conversion]
      self->lp = lpx_read_model(model[0], model[1], model[2]);
               ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/lp.c:338:7: warning: implicit declaration of function 'lpx_read_bas' is invalid in C99 [-Wimplicit-function-declaration]
  if (lpx_read_bas(LP, bas_filename)) {
      ^
src/lp.c:349:8: error: use of undeclared identifier 'LPX_E_OK'
  case LPX_E_OK:        Py_RETURN_NONE;
       ^
src/lp.c:350:8: error: use of undeclared identifier 'LPX_E_FAULT'
  case LPX_E_FAULT:     return PyString_FromString("fault");
       ^
src/lp.c:351:8: error: use of undeclared identifier 'LPX_E_OBJLL'
  case LPX_E_OBJLL:     return PyString_FromString("objll");
       ^
src/lp.c:352:8: error: use of undeclared identifier 'LPX_E_OBJUL'
  case LPX_E_OBJUL:     return PyString_FromString("objul");
       ^
src/lp.c:353:8: error: use of undeclared identifier 'LPX_E_ITLIM'
  case LPX_E_ITLIM:     return PyString_FromString("itlim");
       ^
src/lp.c:354:8: error: use of undeclared identifier 'LPX_E_TMLIM'
  case LPX_E_TMLIM:     return PyString_FromString("tmlim");
       ^
src/lp.c:355:8: error: use of undeclared identifier 'LPX_E_SING'
  case LPX_E_SING:      return PyString_FromString("sing");
       ^
src/lp.c:357:8: error: use of undeclared identifier 'LPX_E_NOPFS'
  case LPX_E_NOPFS:     return PyString_FromString("nopfs");
       ^
src/lp.c:358:8: error: use of undeclared identifier 'LPX_E_NODFS'
  case LPX_E_NODFS:     return PyString_FromString("nodfs");
       ^
src/lp.c:360:8: error: use of undeclared identifier 'LPX_E_NOFEAS'
  case LPX_E_NOFEAS:    return PyString_FromString("nofeas");
       ^
src/lp.c:361:8: error: use of undeclared identifier 'LPX_E_NOCONV'
  case LPX_E_NOCONV:    return PyString_FromString("noconv");
       ^
src/lp.c:362:8: error: use of undeclared identifier 'LPX_E_INSTAB'
  case LPX_E_INSTAB:    return PyString_FromString("instab");
       ^
src/lp.c:492:16: warning: implicit declaration of function 'lpx_exact' is invalid in C99 [-Wimplicit-function-declaration]
  int retval = lpx_exact(LP);
               ^
src/lp.c:493:15: error: use of undeclared identifier 'LPX_E_FAULT'
  if (retval!=LPX_E_FAULT) self->last_solver = 0;
              ^
src/lp.c:498:16: warning: implicit declaration of function 'lpx_interior' is invalid in C99 [-Wimplicit-function-declaration]
  int retval = lpx_interior(LP);
               ^
src/lp.c:499:15: error: use of undeclared identifier 'LPX_E_FAULT'
  if (retval!=LPX_E_FAULT) self->last_solver = 1;
              ^
src/lp.c:708:16: warning: implicit declaration of function 'lpx_intopt' is invalid in C99 [-Wimplicit-function-declaration]
  int retval = lpx_intopt(LP);
               ^
src/lp.c:709:15: error: use of undeclared identifier 'LPX_E_FAULT'
  if (retval!=LPX_E_FAULT) self->last_solver = 2;
              ^
src/lp.c:730:3: warning: implicit declaration of function 'lpx_check_kkt' is invalid in C99 [-Wimplicit-function-declaration]
  lpx_check_kkt(LP, scaling, &(kkt->kkt));
  ^
src/lp.c:737:3: warning: implicit declaration of function 'lpx_check_int' is invalid in C99 [-Wimplicit-function-declaration]
  lpx_check_int(LP, &(kkt->kkt));
  ^
src/lp.c:744:26: error: unknown type name 'LPX'
  static int(*writers[])(LPX*,const char*) = {
                         ^
src/lp.c:745:5: error: use of undeclared identifier 'lpx_write_mps'; did you mean 'glp_write_mps'?
    lpx_write_mps, lpx_write_bas, 
    ^~~~~~~~~~~~~
    glp_write_mps
/usr/local/include/glpk.h:723:5: note: 'glp_write_mps' declared here
int glp_write_mps(glp_prob *P, int fmt, const glp_mpscp *parm,
    ^
src/lp.c:745:20: error: use of undeclared identifier 'lpx_write_bas'
    lpx_write_mps, lpx_write_bas, 
                   ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
8 warnings and 20 errors generated.
error: command 'clang' failed with exit status 1
make: *** [all] Error 1

有人能就如何解决这个问题提出建议吗?我尝试过使用路径和环境变量,但没有任何效果。

不幸的是,pyglpk不能与更新版本的GLPK一起使用。我认为最新的版本是GLPK4.47

不确定这是一个通用的修复程序,但它解决了我对GLPK的特殊需求。我刚刚恢复到一个旧版本,它工作了

首先卸载最新版本:

brew remove glpk
然后安装一个旧的(4.39)

然后这就很好了:

pip install glpk

我会把它作为对原始问题的评论,但我没有足够的声誉这么做


我最近升级到Ubuntu14.04时遇到了同样的问题,该版本附带GLPK 4.52。许多旧API已被弃用,不再公开访问。我在这里有一个解决方法:。

我在Ubuntu 14.10 64位上也有同样的错误。根据@daniel的建议,我是这样安装的:

下载并安装此文件:

下载并安装最新的pymprog:

一切顺利

EDIT1:记住适当设置动态链接器路径

$ export LD_LIBRARY_PATH=/usr/local/lib

我有同样的问题已经好几个星期了,还没有找到解决方案。也许pyglpk现在是弃用软件?如果“git checkout a82e823…”对您不起作用,您可以直接从这里获取文件:
$ ./configure
$ make install
$ python setup.py install
$ export LD_LIBRARY_PATH=/usr/local/lib