AnyLogic
Развернуть
Размер шрифта

Python в AnyLogic: Библиотека Pypeline

Любая модель, разработанная в AnyLogic, является Java-приложением и может быть модифицирована с помощью языка Java. Тем не менее, вы можете использовать Python в качестве дополнительного языка программированиях ваших моделях, подключая нужные библиотеки и реализуя соответствующие алгоритмы.

Чтобы воспользоваться возможностями Python при моделировании, используйте Pypeline — библиотеку, разработанную специально для AnyLogic. С ее помощью вы можете связать виртуальную машину Java и установленный локально интерпретатор Python. Таким образом вы можете исполнять код, написанный на Python, не портируя его в Java.

Больше информации о Pypeline — на посвященной ему странице GitHub.

Внимание: Компания AnyLogic разработала Pypeline как стороннюю библиотеку. Это бесплатный инструмент для взаимодействия с моделями AnyLogic, основанный на открытом исходном коде. Таким образом, компания не предлагает поддержку и не занимается обеспечением совместимости библиотеки. Пользователи Pypeline могут участвовать в обсуждении и задавать вопросы на вкладках Issue или Discussion на странице GitHub.

Требования

  • На компьютере должен быть установлен Python 3+.
  • Путь до исполняемого файла Python должен быть указан в качестве переменной среды PATH.
Из-за особенностей архитектуры системы версия Python, распространяемая через Microsoft Store, не поддерживается Pypeline.

Чтобы установить Pypeline

  1. Скачайте JAR-файл Pypeline со страницы релизов.
  2. Разместите файл в директорию, из которой он не будет случайно перемещен или удален.
  3. Запустите AnyLogic.
  4. Добавьте Pypeline в рабочее пространство: см. Управление библиотеками.
  5. Новая палитра Pypeline, состоящая из единственного элемента PyCommunicator, должна появиться в панели Палитра.

Чтобы проверить соединение

  1. Создайте новую пустую модель.
  2. Перетащите элемент PyCommunicator с палитры Pypeline на графическую диаграмму.
    Оставьте имя элемента по умолчанию (pyCommunicator).
  3. Запустите модель.
  4. Щелкните по элементу PyCommunicator в окне запущенной модели.
  5. В появившемся окне инспекта должны быть видны версия Python, установленная на компьютере, и путь до исполняемого файла Python.
    Если появится сообщение об ошибке, проверьте его текст, чтобы определить причину неполадки.

Функции

Объект PyCommunicator

У объекта PyCommunicator есть три основных функции с несколькими нотациями. Любая из этих функций возвращает объект типа Attempt, данные из которого вы затем можете обработать и использовать в коде Java.

Функция Описание
Attempt run(String... lines) Выполняет код, не возвращающий значения.
Так, pyCommunicator.run("x = 3") создаст переменную x в контексте Python и задаст ей значение 3.

lines — строка (или несколько строк) кода, которую нужно выполнить.
Attempt runResults(String... lines) Выполняет код, возвращающий значение.
Так, pyCommunicator.run("5 + 3") выполнит операцию сложения и вернет ее результат в виде объекта Attempt.

lines — строка (или несколько строк) кода, которую нужно выполнить.
Class<T> runResults(T returnType, String... lines) Выполняет код, возвращающий значение указанного типа.
Так, pyCommunicator.run(int.class, "5 + 3") выполнит операцию сложения и вернет ее результат в виде объекта int.

lines — строка (или несколько строк) кода, которую нужно выполнить.

Объект Attempt

Объект Attempt — это результат вызова функции run() или runResults().

Ниже перечислены основные функции объекта Attempt. Чтобы узнать больше о функциях объектов Pypeline, посмотрите вики-страницу библиотеки.
Функция Описание
boolean isSuccessful() Возвращает булево значение: true, если код Python был выполнен без ошибок, false в остальных случаях.
String getFeedback() Возвращает результат вызова кода Python в виде строки (String).
T getFeedback(Class<T> type) Возвращает результат вызова кода Python в виде объекта указанного типа.

type — Тип объекта, который должен быть возвращен.

Примеры

Чтобы просмотреть модели, демонстрирующие различные варианты использования Python в AnyLogic, перейдите в раздел Примеры моделей на начальной странице, выбрав Справка >  Примеры моделей из главного меню AnyLogic.
Введите python в строку поиска, затем щелкните по ссылке на модель, чтобы открыть ее в графическом редакторе.

Как мы можем улучшить эту статью?