Скрипты Python
Python - это интерпретируемый язык программирования высокого уровня для программирования общего назначения. В Python реализована система динамических типов и автоматическое управление памятью. Он поддерживает множество парадигм программирования, включая объектно-ориентированное, императивное, функциональное и процедурное, и имеет большую и обширную стандартную библиотеку.
Для интеграции скриптов Python 3 в SberMobile необходимо выполнить несколько предварительных шагов, указанных ниже.
Руководство по интеграции Python
1. Установка Python
Загрузите и установите Python в вашу систему. Рекомендуется устанавливать Python как общесистемный компонент, а не пользовательский. Существует несколько способов установки Python:
В исходной документации Python есть инструкции по установке для широкого спектра операционных систем.
Python также может быть установлен через Anaconda, что может упростить установку зависимости JEP.
Версии Python Текущая версия SberMobile совместима с версиями Python 3.5 и выше. Некоторые старые версии SberMobile совместимы только с версией Python 3.6. |
2. Установка Visual C++ Redistributable (только для Windows)
Установите последний пакет Visual C++ Redistributable "все в одном" для версий 2015-2022.
3. Настройка переменных окружения
Необходимо установить или обновить несколько переменных окружения. Следующие изменения должны быть сделаны для пользователя, под которым будет запущен SberMobile. То есть, если SberMobile работает как служба в Windows, следует обновить системные переменные, а не переменные на уровне пользователя.
PYTHONHOME - корневой каталог вашей установки Python
Добавьте PATH к путям: %PYTHONHOME%(или $PYTHONHOME) и %PYTHONHOME%/Скрипты(или $PYTHONHOME/Скрипты).
4. Установка Pip
Pip - это менеджер пакетов для Python, который можно установить следующим образом:
# или загрузить из браузера, если у вас нет curl
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
5. Установка Pandas
Интеграция требует использования библиотеки анализа данных Pandas с открытым исходным кодом, которая добавляет ряд полезных инструментов к стандартной библиотеке python. В большинстве систем этот пакет можно установить следующим образом:
pip install pandas
Pandas и его зависимости обычно включаются по умолчанию в новые среды Python, созданные с помощью Anaconda. При необходимости Pandas можно установить следующим образом:
conda install -c conda-forge pandas
6. Установка JEP (Java Embedded Python)
JEP позволяет выполнять код Python в Java-приложениях и обеспечивает доступ к модулям, объектам и функциям Python, как к объектам Java. Текущая функция позволяет SberMobile взаимодействовать с Python-скриптами.
Пользователи Windows: Рекомендуется установить JEP из исходного кода или распаковать соответствующий архив jep-distro в то место, где был установлен Pandas. Чтобы определить путь, запустите |
Пользователи Linux: Просто установите JEP с помощью pip или Anaconda: pip install jep conda install -c conda-forge jep |
7. Интеграция с SberMobile Server
Может быть необходимо только для старых версий SberMobile. Пропустите этот шаг, если используете последнюю версию SberMobile. |
Копируйте папку "jep" из каталога "lib" SberMobile Server в папку "site-packages" Python, если скрипты Python будут использоваться только для текущего пользователя.
Чтобы найти расположение каталога "site-packages", используйте команду:
python -m site --user-site
.
Копируйте папку "jep" из каталога SberMobile Server "lib" в папку Python "dist-packages", если скрипты Python будут использоваться для всех пользователей.
Чтобы найти расположение каталога "dist-packages", используйте команду:
python -m site
.
9. Перезагрузите машину
Перезагрузите машину и запустите сервер SberMobile.
Интерфейс скриптов
Скриты пишутся на языке Python. Каждый скрипт должен содержать:
dataSetDataFrameInput
dataSetDataFrameOutput
Где dataSetDataFrameInput - это pandas.DataFrame
, преобразованный из входной Data Table.
Все SberMobile числовые типы данных (например, Integer, Double или Long) и тип Date преобразуются в double тип Python.
Все строковые типы SberMobile и типы цветов преобразуются в строковый тип Python
(str
).Каждая вложенная Таблица данных будет преобразована во вложенный
pandas.DataFrame
.
При преобразовании Таблицы данных в pandas.DataFrame
имена всех столбцов остались прежними. В pandas.DataFrame
количество строк и столбцов соответствует количеству записей и полей Data Table соответственно.
Результат выполнения должен быть присвоен dataSetDataFrameOutput.
Библиотека "pandas" не включена в стандартный интерпретатор Python. Библиотека "pandas" должна быть установлена отдельно, как указано выше. |
Шаблон скрипта
Когда создается новый скрипт, его текст не пуст. Он содержит автогенерируемый код с двумя переменными:
dataSetDataFrameInput # Входные параметры (pandas.DataFrame)
dataSetDataFrameOutput #Параметры вывода (pandas.DataFrame)
Для выполнения скриптов Python в вашей ОС должны быть переменные окружения Python. |
Пример скрипта
Пример скрипта Python:
import pandas
dataSetDataFrameInput #scrScriptPyDefaultDataFrame
pythonList = list()
pythonList.append(1)
pythonList.append(2)
pythonList.append(3)
innerStrList = list()
innerStrList.append("newStr")
innerStrList.append("someStr")
innerStrList.append("superStr")
pythonList.append(innerStrList)
df = pandas.DataFrame(pythonList)
dataSetDataFrameOutput = df #scrScriptPyDefaultDataFrame