如何解决如何解决PyFMI中的字符编码错误?
我在 Ubuntu 20.04 上尝试使用 PyFMI 加载和运行从 OpenModelica 导出的 FMU。当我运行代码时:
from pyfmi import load_fmu
model = load_fmu('Model.fmu')
产生以下错误:
File "src/pyfmi/fmi.pyx",line 7943,in pyfmi.fmi.load_fmu
File "src/pyfmi/fmi.pyx",line 7086,in pyfmi.fmi.FMUModelME2.__init__
File "src/pyfmi/fmi.pyx",line 3761,in pyfmi.fmi.FMUModelBase2.__init__
File "src/pyfmi/fmi.pyx",line 45,in pyfmi.fmi.encode
TypeError: latin_1_encode() argument 1 must be str,not bytes
无论我使用的是通过 pip 还是 conda 提供的 PyFMI 版本,结果都是一样的。
我花了几个小时试图找到解决方案,但无济于事。在 pip 上,他从 pyfmi.check_packages()
返回的包信息是:
PyFMI version ................ 2.5
Platform ..................... linux
Python version ............... 3.8.5
Dependencies:
Package Version
------- -------
assimulo...................... 3.0
Cython........................ 0.29.22
lxml.......................... 4.5.0
matplotlib.................... 3.1.2
numpy......................... 1.17.4
scipy......................... 1.6.1
在 conda 上是
PyFMI version ................ 2.5
Platform ..................... linux
Python version ............... 3.8.5
Dependencies:
Package Version
------- -------
assimulo...................... 3.0
Cython........................ 0.29.22
lxml.......................... 4.6.2
matplotlib.................... 3.3.4
numpy......................... 1.20.1
scipy......................... 1.6.1
注意:我已经尝试通过 conda 安装版本 PyFMI 2.8.5,但无论我尝试什么,我似乎总是以 2.5 结束。
有人有什么建议吗?非常感谢您的帮助!
解决方法
我现在意识到为什么加载了错误版本的包。卸载 pip 版本 (2.5) 后,conda 版本 (2.8.5) 变得可见,见下文(修复第二个问题后更新)。当然,现在我有一个不同的问题,但是我会在不同的线程中记录这个问题...结果证明是一个类似的问题。我在 pip 中安装了一个过时的 Assimulo 包,卸载后可以正确使用 conda 版本。我将我的解决方案记录公开,希望我的职位上的其他人可以从中受益。
Performing pyfmi package check
==============================
PyFMI version ................ 2.8.5
Platform ..................... linux
Python version ............... 3.8.5
Dependencies:
Package Version
------- -------
assimulo...................... 3.2.3
Cython........................ 0.29.22
lxml.......................... 4.6.2
matplotlib.................... 3.3.4
numpy......................... 1.20.1
scipy......................... 1.6.1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。