Внешние зависимости в 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.