Python と olca-ipc 2.4.0 で openLCA にプロセスを読み込ませています。openLCA 2.6.0 では正しく入っていた交換(exchange)の量が、2.6.1 に上げると 0 で入るようになりました。変えたのは openLCA の版だけです。
式で与えた交換は正しく入り、数値で与えた交換だけが 0 になっているようです。何が原因でしょうか。
1 件の回答
数値は amount に float で、式は amount_formula に文字列で入れると、2.6.1 でも 0 になりません。 質問者は、値が式(文字列)でも数値(float)でも常に amount_formula に入れていました。2.6.0 ではそれで通っていましたが、2.6.1 では float を入れると通らなくなった、と質問者自身が突き止めて書いています。
質問者が解決した書き方は、次のどちらかです。
- 数値を文字列にしてから
amount_formulaに入れる - 数値は
amountに float で入れる
e.amount_formula = float(amount) # doesn't work
e.amount_formula = str(amount) # works
e.amount = float(amount) # works式を持つ交換は、質問者のコードでは amount_formula に文字列(f"{formula}")で入れており、2.6.1 でも正しく入っていました。2.6.1 で何が変わってこうなったのかは、スレッドの中では分かっていません。別の回答者は、変更履歴は更新したが、このような振る舞いにつながる変更は把握しておらず、IPC のテストもエラーなく通っている、と書いています。
参考にしたスレッド
- [bug][openlca 2.6.1] Exchange amounts set to zeroask.openLCA2026-05
