我想在我的 Windows 计算机上安装带有 PyFMI 的 Python 3,我已经有带有 Python 2 的 JModelica 2.10。因此,我的想法是根据需要在 Python 2 中将 Modelica 模型编译为 FMU,然后在 Python 3 中开发脚本来运行 FMU 和可视化结果。我怎样才能最好地避免两个 Python 环境之间的任何冲突?
1 回答
JModelica 2.10 和 Python 2 已经使用 JModelica 到 Windows 的二进制标准安装文件安装。这似乎提供了一个受限的 Python 环境。这里没有使用 conda,但包含了 pip。
我已经使用 Miniconda 使用 Python 3 和 PyFMI 进行了测试安装,这似乎确实有效,我想就这里是否有潜在问题需要检查或可以更好地完成发表评论。我没有采取任何步骤从 JModelica 安装中删除与 PyFMI 相关的 Python 2 库。估计可以等。
我在 Windows 10 中完成了以下操作:
- JModelica 2.10 的标准 Windows 安装程序已在不久前完成。
通过以下方式使用 conda 在“顶部”安装 Python 3 环境:
一个。从此处下载适用于 Python3 的 Miniconda https://docs.conda.io/en/latest/miniconda.html
湾。安装 Miniconda3 并获得 Python 3.x 和一些软件包 - 但在安装的早期阶段要小心,并选择不在任何“路径”中进行安装。有两个框,我选择不标记这两个框。
C。最好先通过以下命令更新 conda:
$conda update conda
d。然后我使用 Python 3 创建一个特殊的环境“pyfmi”,以便通过命令进一步安装 PyFMI
$conda create -n pyfmi python=3
e. 然后通过命令激活该环境
$conda activate pyfmi
现在在刚刚创建的这个活动 conda 环境“pyfmi”和其他一些有用的库中安装 PyFMI:
$conda config --add channels conda-forge $conda install pyfmi $conda install matplotlib $conda install ipython $conda install jupyter
您现在可以停用“pyfmi”环境并关闭命令窗口
在 Windows 开始菜单中,您现在可以找到 Anaconda PowerShell 的“按钮”(Anaconda 也有另一个按钮)。使用第一个启动命令窗口,然后从这里开始
$conda activate pyfmi $ipython --pylab
现在您可以加载之前编译的 FMU 并像往常一样运行它,但现在在 Python 3 环境中,命令是:
$from pyfmi import load_fmu $model=load_fmu(FMU_model)
如果您想修改模型并重新编译以获得新的 FMU,您只需像往常一样从 Windows 开始菜单中为 JModelica/pylab 打开一个新的命令窗口。这意味着您在一个命令窗口中使用完整的 JModelica 2.10 在 Python 2 中工作,而在另一个命令窗口中使用 Python 3 和 PyFMI。如果您愿意,您可以从两者对同一个文件夹进行操作,但也可以更好地使用单独的文件夹。
如上所述,此安装提供了在 Python2 中使用 JModelica 命令窗口或在 Python3 中使用 pyfmi 命令窗口运行相同 FMU 的可能性。
我已经用几个脚本对其进行了测试,并使用了 model.simulate() 和 model.estimate(),到目前为止没有发现任何问题。