我正在尝试安装GLPK python模块从不同的角度来处理线性编程,但我没有把它弄好。有人可以告诉我,我错过了什么?
这是错误的详细信息:
Python 2.7.10 |Anaconda 2.3.0 (x86_64)| (default, May 28 2015, 17:04:42)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://binstar.org
>>> import glpk
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "//anaconda/lib/python2.7/site-packages/glpk/__init__.py", line 26, in <module>
from glpk_parser import *
File "//anaconda/lib/python2.7/site-packages/glpk/glpk_parser.py", line 352, in <module>
yacc.yacc(write_tables=0, debug=0)
File "//anaconda/lib/python2.7/site-packages/ply/yacc.py", line 3244, in yacc
read_signature = lr.read_table(tabmodule)
File "//anaconda/lib/python2.7/site-packages/ply/yacc.py", line 1967, in read_table
if parsetab._tabversion != __tabversion__:
AttributeError: 'module' object has no attribute '_tabversion'
我按照link
中的说明进行操作我在网上搜索了一些解决方案,一些解决方案说必须存在版本不匹配,但我不确定这对我是否也是一样。
我还按照以下说明安装了glpk版本4.35:
Tar -xvf [filename]
。/配置
使
安装
这将安装
Glpsol - help
安装后
[虽然我不确定是否有连接]
有人可以帮帮我吗?
答案 0 :(得分:2)
所以我可以确认这是版本不匹配。由于python glpk维护得不好,所以它与ply有点不相容。
这里发生的事情是ply在没有任何特定书面模型的情况下进行了初始化。它会自动加载缺少必需属性parsetab.py
的{{1}}。
所以你可以在parsetab中添加_tabversion
(最新的ply版本),它应该创建所需的属性。另一方面,您可以使用在python glpk(旧版本3.4版本)开发过程中使用的ply版本,它为这些旧模块文件提供了一些额外的兼容路径。
最后一个选项是为python使用更好的glpk绑定实现(在大学我们在python中使用glpk通过pyomo为我们的学生)