【问题标题】:Error while loading a fmu in python with pyfmi library使用 pyfmi 库在 python 中加载 fmu 时出错
【发布时间】:2019-05-29 09:36:41
【问题描述】:

我已经安装了 PyFMI 库并尝试加载由 GT-Suite 在 python 中创建的 fmu。

我正在关注 jmodelica 的这个教程:

https://jmodelica.org/pyfmi/tutorial.html

# Import the load function (load_fmu)
from pyfmi import load_fmu

这个集合给出一个警告

Could not find cannot import name 'radau5' from 'assimulo.lib' (C:\Users\chinn\Anaconda3\lib\site-packages\assimulo\lib\__init__.py)
Could not find cannot import name 'dopri5' from 'assimulo.lib' (C:\Users\chinn\Anaconda3\lib\site-packages\assimulo\lib\__init__.py)
Could not find cannot import name 'rodas' from 'assimulo.lib' (C:\Users\chinn\Anaconda3\lib\site-packages\assimulo\lib\__init__.py)
Could not find cannot import name 'odassl' from 'assimulo.lib' (C:\Users\chinn\Anaconda3\lib\site-packages\assimulo\lib\__init__.py)
Could not find ODEPACK functions.
Could not find RADAR5
Could not find GLIMDA.

当我尝试加载 fmu 模型时

#Load the FMU
model = load_fmu('AHUdirectRPm.fmu')

我收到一个错误

Traceback (most recent call last):

  File "<ipython-input-2-77df09904b1e>", line 1, in <module>
    model = load_fmu('AHUdirectRPm.fmu')

  File "src\pyfmi\fmi.pyx", line 7899, in pyfmi.fmi.load_fmu

  File "src\pyfmi\fmi.pyx", line 2558, in pyfmi.fmi.FMUModelCS1.__init__

  File "src\pyfmi\fmi.pyx", line 1167, in pyfmi.fmi.FMUModelBase.__init__

  File "src\pyfmi\fmi.pyx", line 45, in pyfmi.fmi.encode

TypeError: latin_1_encode() argument 1 must be str, not bytes

有人可以帮我解决这个问题吗?怎么办?

'pyfmi.check_packages()'的输出


Performing pyfmi package check 
==============================

PyFMI version ................ 2.5                           

Platform ..................... win32                         

Python version ............... 3.7.3                         



Dependencies: 

Package                        Version                       
-------                        -------                       
assimulo...................... 3.0                           
Cython........................ 0.29.6                        
lxml.......................... 4.3.2                         
matplotlib.................... 3.0.3                         
numpy......................... 1.16.2                        
scipy......................... 1.2.1                         
wxPython...................... --              Package missing - Warning issued, see details below
pyreadline.................... 2.1                           
setuptools.................... 40.8.0                        


Warnings 
--------

-- The package wxPython could not be found. This package is needed to be able to use the plot-GUI.

【问题讨论】:

  • 'pyfmi.check_packages()' 给你什么?
  • 嗨@jrhodin,添加输出,安装assimulo包。
  • pip install Assimulo 出现错误,使用 conda install -c conda-forge assimulo 安装 assimulo。相应地更新了问题

标签: python openmodelica jmodelica fmi pyfmi


【解决方案1】:

使用 pip 安装 pyfmi 包会报错。必须正确下载所有依赖项。通过 conda 安装不需要所有这些。通过 conda 安装由

conda install -c conda-forge pyfmi 

这对我来说效果很好

【讨论】:

    【解决方案2】:

    错误:

    Traceback (most recent call last):
    
       File "<ipython-input-2-77df09904b1e>", line 1, in <module>
           model = load_fmu('AHUdirectRPm.fmu')
       File "src\pyfmi\fmi.pyx", line 7899, in pyfmi.fmi.load_fmu
       File "src\pyfmi\fmi.pyx", line 2558, in pyfmi.fmi.FMUModelCS1.__init__
       File "src\pyfmi\fmi.pyx", line 1167, in pyfmi.fmi.FMUModelBase.__init__
       File "src\pyfmi\fmi.pyx", line 45, in pyfmi.fmi.encode
    
    TypeError: latin_1_encode() argument 1 must be str, not bytes
    

    是由于 PyFMI 中的内部编码存在问题,将在 PyFMI 的更高版本 (>2.5) 中修复。

    【讨论】:

      猜你喜欢
      • 2020-06-14
      • 2019-11-17
      • 2019-05-29
      • 1970-01-01
      • 1970-01-01
      • 2020-06-25
      • 2014-11-17
      • 2021-01-13
      相关资源
      最近更新 更多