Внешние зависимости в odoo

какая

Внешние зависимости - это пакеты Python или любые двоичные файлы, которые должны быть установлены для работы модуля.

Как

В файлах python, где вы используете внешние зависимости, вам нужно добавить `` try-Кроме`` с журналом отладки.

import

try:
    import external_dependency_python_N
    import external_dependency_python_M
except ImportError as err:
    _logger.debug(err)

# for binary dependencies:
try:
    import external_dependency_python_N
    import external_dependency_python_M
except IOError as err:
    _logger.debug(err)

Это правило не применяется к тестовым файлам, поскольку эти файлы загружаются только при выполнении тестов, и в этом случае ваш модуль и его внешние зависимости установлены.

Также вам необходимо добавить внешние зависимости в manifest.

Почему

Odoo загружает Python-файлы модуля, когда выполняются следующие условия:

  • модуль имеет статическую папку (например, для иконки)
  • модуль, помеченный как устанавливаемый в manifest, т.е. модуль * можно * установить

Видно, что odoo загружает файлы Python, даже если модуль не установлен (и даже не предназначен для установки). Но модули обычно добавляются в addons-path как часть некоторого репозитория (например, * pos-addons *). Вот почему импорт внешних зависимостей без `` try-кроме`` приводит к проблемам при добавлении репозитория в addons-path.