Как совместить Python 3 со стандартной JModelica, зависящей от Python 2?
Я хотел бы установить Python 3 с PyFMI на свой компьютер с Windows, где у меня уже есть JModelica 2.10 с Python 2. Моя идея состоит в том, чтобы при необходимости скомпилировать модели Modelica в FMU в Python 2, а затем разработать сценарии на Python 3 для запуска FMU и визуализировать результаты. Как мне лучше всего это сделать, чтобы избежать конфликта между двумя средами Python?
1 ответ
JModelica 2.10 и Python 2 уже установлены с использованием стандартного двоичного установочного файла для JModelica в Windows. Похоже, это дает ограниченную среду Python. Здесь conda не используется, но pip включен.
Я выполнил тестовую установку с Python 3 и PyFMI с использованием Miniconda, который, кажется, действительно работает, и я хотел бы получить комментарии о том, есть ли здесь потенциальные проблемы, которые нужно проверить, или их можно лучше решить. Я не предпринимал никаких шагов для удаления библиотек из Python 2, связанных с PyFMI, из установки JModelica. Я думаю, это может подождать.
В Windows 10 я сделал следующее:
- Стандартный Windows-установщик для JModelica 2.10 сделан некоторое время назад.
Установите среду Python 3 "сверху" с помощью conda следующим образом:
а. Загрузите Miniconda для Python3 отсюда https://docs.conda.io/en/latest/miniconda.html
б. Установите Miniconda3, и вы получите Python 3.x и некоторые пакеты, но будьте осторожны на ранней стадии установки и сделайте выбор НЕ устанавливать установку по какому-либо "пути". Есть два поля, и я предпочитаю оставить оба поля неотмеченными.
c. Может быть хорошо сначала обновить conda с помощью команды:
$conda update conda
d. Затем я создаю специальную среду pyfmi с Python 3 для дальнейшей установки PyFMI командой
$conda create -n pyfmi python=3
е. Затем активируйте эту среду командой
$conda activate pyfmi
Теперь установите PyFMI в только что созданную активную среду conda "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, вы просто открываете новое командное окно для JModelica/pylab из меню "Пуск" Windows, как обычно. Это означает, что вы в одном командном окне работаете с Python 2 с полной JModelica 2.10, а в другом командном окне с Python 3 только с PyFMI. И вы можете работать с одной и той же папкой из обоих, если хотите, но также может быть лучше иметь отдельные папки.
Как сказано выше, эта установка предоставляет возможность запускать один и тот же FMU как в Python2 с командным окном JModelica, так и в Python3 с командным окном pyfmi.
Я протестировал его с помощью нескольких скриптов и использовал model.simulate(), а также model.estimate() и пока не обнаружил никаких проблем.
Связанное сообщение - PyFMI в среде Python 3 в Ubuntu 18.04.