Ansible скрипт: python: ModuleNotFoundError - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь запустить свой основной файл python с использованием ansible.

name: Run project become: yes script: "{{repo}}/main.py --arg1 {{repo}}/configfile.py" args: chdir: "{{repo}}" executable: "{{repo}}/venv/bin/python"

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

Тем не менее, я получаю эту ошибку:

fatal: [local_machine]: FAILED! => {"changed": true, "msg": "non-zero return code", "rc": 1, "stderr": "Traceback (most recent call last):\n  File \"/home/vagrant/.ansible/tmp/ansible-tmp-1571132915.6405714-115359809713305/main.py\", line 1, in <module>\n    import utils\nModuleNotFoundError: No module named 'utils'\n", "stderr_lines": ["Traceback (most recent call last):", "  File \"/home/vagrant/.ansible/tmp/ansible-tmp-1571132915.6405714-115359809713305/watch_scraper.py\", line 1, in <module>", "    import utils", "ModuleNotFoundError: No module named 'utils'"], "stdout": "", "stdout_lines": []}

Как я могу получить ответ, чтобы запустить скрипт и узнать его контекста?

1 Ответ

1 голос
/ 15 октября 2019

Для сценария, который вы пытаетесь выполнить, могут потребоваться утилиты, установленные для выполнения.

Поскольку нет делегирования localhost или local_action не используется. Выполнение происходит на целевом узле.

Вам необходимо установить пакет утилит.

В python pip (менеджер пакетов) связан с определенной версией python, т.е. pip3 для python3, pip2 для python2.

Поскольку вы используете venv, вам необходимо установить пакеты перед выполнением сценария.

Я бы предложил передать файл require.txt и использовать его в качестве справочного материала для установки модулей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...