如何将 Python 3 与依赖于 Python 2 的标准 JModelica 相结合?

How to combine Python 3 with standard JModelica dependent on Python 2?

我想在我的 Windows 计算机上安装 Python 3 和 PyFMI,我已经有 JModelica 2.10 和 Python 2。因此,我的想法是将 Modelica 模型编译为 FMU根据需要在 Python 2 中开发脚本,然后在 Python 3 中开发脚本到 运行 FMU 并可视化结果。我该怎么做才能最好地避免两个 Python 环境之间的任何冲突?

JModelica 2.10 和 Python 2 已经使用 JModelica 的二进制标准安装文件安装到 Windows。这似乎提供了一个受限的 Python 环境。这里没有使用conda,而是包含了pip。

我已经用 Python 3 和 PyFMI 使用 Miniconda 进行了测试安装,这似乎确实有效,我想就这里是否存在需要检查或可以更好地完成的潜在问题发表评论。我没有采取任何步骤从 Python 2 从 JModelica 安装中删除与 PyFMI 相关的库。我想那可以等等。

我在 Windows 10 中完成了以下操作:

  1. JModelica 2.10 的标准 Windows 安装程序已完成一段时间。
  2. 按以下方式使用 conda 安装 Python 3 环境:

    一个。从这里下载 Python3 的 Miniconda https://docs.conda.io/en/latest/miniconda.html

    b。安装 Miniconda3,你会得到 Python 3.x 和一些包 - 但要注意在安装的早期阶段不要选择 在任何“路径”中进行安装。有两个框,我选择不标记两个框。

    c。可以先通过命令更新conda:

    $conda update conda
    

    d。然后我创建一个特殊环境 "pyfmi" 和 Python 3 以通过命令

    进一步安装 PyFMI
    $conda create -n pyfmi python=3
    

    e。然后通过命令激活该环境

    $conda activate pyfmi
    
  3. 现在在刚刚创建的活动 conda 环境中安装 PyFMI "pyfmi" 和一些其他有用的库:

    $conda config --add channels conda-forge
    $conda install pyfmi
    $conda install matplotlib
    $conda install ipython
    $conda install jupyter
    
  4. 您现在可以停用 "pyfmi" 环境并关闭命令 window

  5. 在 Windows 开始菜单中,您现在可以找到 Anaconda PowerShell 的 "button"(还有另一个 Anaconda 按钮)。使用第一个启动命令-window,然后从这里执行 do

    $conda activate pyfmi
    $ipython --pylab
    
  6. 现在你可以像往常一样加载以前编译的 FMU 和 运行 但现在在 Python 3 环境中,命令是:

    $from pyfmi import load_fmu
    $model=load_fmu(FMU_model)
    
  7. 如果您想修改模型并重新编译以获得新的 FMU,您只需从 Windows 中为 JModelica/pylab 打开一个新命令 window像往常一样开始菜单。这意味着您在一个命令-window 中使用完整的 JModelica 2.10 在 Python 2 中工作,而在另一个命令-window 中使用 Python 3 仅使用 PyFMI。如果你愿意,你可以从两者对同一个文件夹进行操作,但最好有单独的文件夹。

如上所述,此安装提供了 运行 相同 FMU 的可能性,无论是在 Python2 中使用 JModelica 命令-window 还是在 Python3 中使用 pyfmi命令- window.

我已经用一些脚本对其进行了测试,并使用了 model.simulate() 和 model.estimate(),到目前为止没有发现任何问题。

相关 post 是