Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.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 3.6 使用python 3.6使用sum生成pyomo表达式时出错_Python 3.6_Pyomo - Fatal编程技术网

Python 3.6 使用python 3.6使用sum生成pyomo表达式时出错

Python 3.6 使用python 3.6使用sum生成pyomo表达式时出错,python-3.6,pyomo,Python 3.6,Pyomo,我正在Linux 3.16.0-4-amd64上使用pyomo-pyomo 5.1.1 CPython 3.6.0 在Python3.6下,当我想要使用求和在模型中构建表达式时,会收到一条错误消息。 下面是一个简单的例子: from pyomo.environ import * from pyomo.opt import SolverFactory model=ConcreteModel() model.H=RangeSet(0,23) model.x=Var(model.H) E=summat

我正在Linux 3.16.0-4-amd64上使用pyomo-pyomo 5.1.1 CPython 3.6.0 在Python3.6下,当我想要使用求和在模型中构建表达式时,会收到一条错误消息。 下面是一个简单的例子:

from pyomo.environ import *
from pyomo.opt import SolverFactory
model=ConcreteModel()
model.H=RangeSet(0,23)
model.x=Var(model.H)
E=summation(model.x)
我得到以下错误:

如果在model.h中用h上的循环替换求和,则会得到相同的错误

这里也注意到了这个bug:

除了返回到较旧版本的Python之外,还有什么简单的方法可以解决这个问题吗

非常感谢您的帮助


Paulin

Pyomo仅支持Python 2.6、2.7、3.3、3.4和3.5

Python3.6更改了内部调用堆栈,这使Pyomo用于检测表达式何时被额外变量指向的内部幻数无效,也就是说,它可能在多个表达式中被重用——这是Pyomo表达式树不允许的。开发人员正在pyomo4表达式分支中进行修复。在该修复程序被合并回master并发布之前,唯一的替代方法是安装一个受支持的Python版本

更新[4月3日至17日]:修复程序于2017年3月7日合并回主程序。Pyomo应该在下一个补丁版本中支持python3.6


更新[14 May 17]:Pyomo 5.2已经发布,它提供了对Python 3.6的全面支持。Pyomo仅支持Python 2.6、2.7、3.3、3.4和3.5

Python3.6更改了内部调用堆栈,这使Pyomo用于检测表达式何时被额外变量指向的内部幻数无效,也就是说,它可能在多个表达式中被重用——这是Pyomo表达式树不允许的。开发人员正在pyomo4表达式分支中进行修复。在该修复程序被合并回master并发布之前,唯一的替代方法是安装一个受支持的Python版本

更新[4月3日至17日]:修复程序于2017年3月7日合并回主程序。Pyomo应该在下一个补丁版本中支持python3.6

更新[5月14日至17日]:pyomo5.2已经发布,它提供了对python3.6的全面支持

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/b67777/anaconda3/lib/python3.6/site-packages/pyomo/core/base/util.py", line 86, in summation
    ans += item
  File "/home/b67777/anaconda3/lib/python3.6/site-packages/pyomo/core/base/numvalue.py", line 537, in __iadd__
    return generate_expression(_iadd,self,other)
  File "/home/b67777/anaconda3/lib/python3.6/site-packages/pyomo/core/base/expr_coopr3.py", line 977, in generate_expression
    _self = _generate_expression__clone_if_needed(_self, 1)
  File "/home/b67777/anaconda3/lib/python3.6/site-packages/pyomo/core/base/expr_coopr3.py", line 918, in _generate_expression__clone_if_needed
    % ( getrefcount(obj) - UNREFERENCED_EXPR_COUNT, ))
RuntimeError: Expression entered generate_expression() with too few references (0<0); this is indicative of a SERIOUS ERROR in the expression reuse detection scheme.