Зависимости

Зависимости плагинов. Установка зависимостей.

Плагины Аксиомы могут использовать сторонние библиотеки Python. Такой плагин во время установки обратится к каталогу пакетов PyPI и установит необходимые зависимости.

В коде плагина пакет импортируется обычным способом:

Файл __init__.py
import numpy
...

Зависимости перечисляются в специальном файле requirements.txt. Так плагин с зависимостями может иметь следующую структуру:

ru_axioma_gis_axipy_example_plugin_from_package
├── __init__.py
├── manifest.ini
└── requirements.txt

Файл является простым текстовым файлом в кодировке UTF-8, в котором построчно перечислены необходимые пакеты. Например:

Файл requirements.txt
numpy
requests
idna

Примечание

В настоящий момент нет возможности указать версию пакета.

Также, зависимости можно установить напрямую, например, для использования в интерактивной консоли python.

Пример команды установки зависимостей из файла «requirements.txt»:

Команда для установки зависимостей из файла «requirements.txt», где <AXIOMA> - папка установленной Аксиомы.
# Linux
"<AXIOMA>/sbin/run-python" -m pip install -r ./requirements.txt
# Например:
"/opt/axioma-gis6/sbin/run-python" -m pip install -r ./requirements.txt

# Windows
"<AXIOMA>\bin\python\python.exe" -m pip install -r requirements.txt
# Например:
"C:\Program Files\Axioma v6\bin\python\python.exe" -m pip install -r requirements.txt

Пример команды установки отдельного пакета по имени:

Команда для установки отдельного пакета по имени, где <AXIOMA> - папка установленной Аксиомы.
"C:/Program Files/Axioma v4/bin/python/python.exe" -m pip install qt5_applications

# Linux
"<AXIOMA>/sbin/run-python" -m pip install qt5_applications
# Например:
"/opt/axioma-gis6/sbin/run-python" -m pip install qt5_applications

# Windows
"<AXIOMA>\bin\python\python.exe" -m pip install qt5_applications
# Например:
"C:\Program Files\Axioma v6\bin\python\python.exe" -m pip install qt5_applications

где qt5_applications наименование пакета, который необходимо установить.

Расположение каталога установки зависимостей site-packages

Расположение каталога установки зависимостей, где <VERSION> - это номер версии Аксиомы, например «6».

Для Windows:
"%APPDATA%/ESTI/Axioma.GIS/v<VERSION>/installed_modules/dependencies/site-packages"
Примерный результат:
C:/Users/user/AppData/Roaming/ESTI/Axioma.GIS/v6/installed_modules/dependencies/site-packages
Для Linux:
"${HOME}"/.local/share/ESTI/Axioma.GIS/v<VERSION>/installed_modules/dependencies/site-packages
Примерный результат:
/home/user/.local/share/ESTI/Axioma.GIS/v6/installed_modules/dependencies/site-packages
Для macOS:
"${HOME}/Library/Application Support/ESTI/Axioma.GIS/v6/installed_modules/dependencies/site-packages"
Примерный результат:
/home/user/Library/Application Support/ESTI/Axioma.GIS/v6/installed_modules/dependencies/site-packages

Также, определить каталог, куда будут устанавливаться зависимые python пакеты можно следующей командой:

Команда для получения каталога зависимых пакетов, где <AXIOMA> - папка установленной Аксиомы.
# Linux
"<AXIOMA>/sbin/run-python" -c "import axipy; axipy.init_axioma(); print(axipy.get_dependencies_folder())"
# Например:
"/opt/axioma-gis6/sbin/run-python" -c "import axipy; axipy.init_axioma(); print(axipy.get_dependencies_folder())"

# Windows
"<AXIOMA>\bin\python\python.exe" -c "import axipy; axipy.init_axioma(); print(axipy.get_dependencies_folder())"
# Например:
"C:\Program Files\Axioma v6\bin\python\python.exe" -c "import axipy; axipy.init_axioma(); print(axipy.get_dependencies_folder())"

Без интернета. Ручная установка пакетов.

Может возникнуть ситуация, когда устанавливаемый плагин имеет внешние зависимости, а доступа к каталогу пакетов PyPI нет. Плагин не сможет успешно установиться.

В этом случае можно скачать все необходимые зависимые пакеты на компьютере, который имеет доступ к интернету и конкретно к каталогу пакетов PyPI, а затем перенести их на целевой компьютер.

Для этого рекомендуется:

  1. Установить ГИС Аксиома на компьютер с доступом к сети Интернет (той же версии и платформы).

  2. Извлечь из архива с плагином .axp файл зависимостей requirements.txt.

  3. Используя командную строку и интерпретатор Python внутри установленной Аксиомы, выполнить

Загрузка необходимых пакетов в папку, где <AXIOMA> - папка установленной Аксиомы.
# Linux
"<AXIOMA>/sbin/run-python" -m pip download -r ./requirements.txt --dest ./module_deps/
# Например:
"/opt/axioma-gis6/sbin/run-python" -m pip download -r ./requirements.txt --dest ./module_deps/

# Windows
"<AXIOMA>\bin\python\python.exe" -m pip download -r requirements.txt --dest module_deps
# Например:
"C:\Program Files\Axioma v6\bin\python\python.exe" -m pip download -r requirements.txt --dest module_deps

, где module_deps - папка, в которую будут загружены зависимые пакеты.

  1. Перенести зависимые пакеты на компьютер без интернета.

  2. Аналогично, используя командную строку и интерпретатор Python внутри установленной Аксиомы, выполнить

Установка необходимых пакетов из папки, где <AXIOMA> - папка установленной Аксиомы.
# Linux
"<AXIOMA>/sbin/run-python" -m pip install -r ./requirements.txt --no-index --find-links ./module_deps/
# Например:
"/opt/axioma-gis6/sbin/run-python" -m pip install -r ./requirements.txt --no-index --find-links ./module_deps/

# Windows
"<AXIOMA>\bin\python\python.exe" -m pip install -r requirements.txt --no-index --find-links module_deps
# Например:
"C:\Program Files\Axioma v6\bin\python\python.exe" -m pip install -r requirements.txt --no-index --find-links module_deps
  1. Установить архив с плагином *.axp.