鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

chaste安装过程中报错

问题现象描述

运行make -j48 Continuous后报错,报错信息:“AttributeError: 'str' object has no attribute 'format'”。

关键过程、根本原因分析

Format是python2.6新增的一个格式化字符串的方法。

结论、解决方案及效果

执行以下操作修改translators.py。

vim /path/to/CHASTE/Chaste-release_2019.1/python/pycml/translators.py

将1830行取消注释,将1831行注释掉。

将1838行取消注释,将1839行注释掉。

修改前:

1830                 #self.writeln('std::cout << "Too small: ', self.code_name(var), ' = " << ', self.code_name(var) , ' << std::endl << std::flush;')
1831                 self.writeln(error_template.format(self.var_display_name(var)))
1832                 self.close_block(False)
1833             for var in high_range_vars:
1834                 if using_cvode:
1835                     additional_tolerance_adjustment = ' + tol'
1836                 self.writeln('if (', self.code_name(var), ' > ', var.get_rdf_annotation(high_prop), additional_tolerance_adjustment, ')')
1837                 self.open_block()
1838                 #self.writeln('std::cout << "Too large: ', self.code_name(var), ' = " << ', self.code_name(var) , ' << std::endl << std::flush;')
1839                 self.writeln(error_template.format(self.var_display_name(var)))

修改后:

1830                 self.writeln('std::cout << "Too small: ', self.code_name(var), ' = " << ', self.code_name(var) , ' << std::endl << std::flush;')
1831                 #self.writeln(error_template.format(self.var_display_name(var)))
1832                 self.close_block(False)
1833             for var in high_range_vars:
1834                 if using_cvode:
1835                     additional_tolerance_adjustment = ' + tol'
1836                 self.writeln('if (', self.code_name(var), ' > ', var.get_rdf_annotation(high_prop), additional_tolerance_adjustment, ')')
1837                 self.open_block()
1838                 self.writeln('std::cout << "Too large: ', self.code_name(var), ' = " << ', self.code_name(var) , ' << std::endl << std::flush;')
1839                 #self.writeln(error_template.format(self.var_display_name(var)))