当我尝试安装 ManPy 时,我收到以下错误消息:
错误:已安装 pyparsing 2.1.4,但 set(['pulp']) 需要 pyparsing<=1.9.9
我检查了 Pyparsing 设置,但没有找到解决方案。
这实际上是 PuLP 的 setup.py 中的一个错误(显然是 ManPy 使用的):
#hack because pyparsing made version 2 python 3 specific
if sys.version_info[0] <= 2:
pyparsing_ver = 'pyparsing<=1.9.9'
else:
pyparsing_ver = 'pyparsing>=2.0.0'
从 pyparsing 2.0.1 开始,pyparsing 统一为 Py2 和 Py3 安装使用单一代码库,但仅使用已向后移植到 2.7 的 Py3 构造。这需要几个版本才能解决,但是 pyparsing(从 2.0.3 开始,现在是 2.1.9 版本)现在与 Python 2.6 及更高版本兼容。
如果您使用的是 2.6 之前的 Python 版本,那么您需要安装 pyparsing 1.5.7,这是 2.6 之前的最后一个兼容版本,并且没有计划新的 1.x 版本。
联系 PuLP 的维护者,看看你是否可以让他们在他们的 setup.py 文件中修复这个版本测试。
更新:仔细检查后,我发现 PuLP 使用了一个名为 Amply 的小模块来执行实际的表达式解析。我刚刚在我的 pyparsing 2.1.9 环境中使用 Amply 进行了一些测试,它们运行得很好。