PyCharm отладочный подпроцесс / Popen получил сообщение об ошибке - PullRequest
2 голосов
/ 09 января 2020

Я использую скрипт Dynami c для извлечения информации о хосте, предоставленной структурой ansible.

path = '/Volumes/Work@SSD/code/python/icode_devop_be/app/libs/ansible/sources/redis_set_sources.py'
host = 'WIN-2OLQLBCH8FO'
cmd = [path, "--host", host]
try:
    sp = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
except OSError as e:
    raise AnsibleError("problem running %s (%s)" % (' '.join(cmd), e))
(out, err) = sp.communicate()

Когда я отлаживаю код в Pycharm , я получаю сообщение об ошибке:

b'usage: redis_set_sources.py [-h] (--list | --host HOST)\nredis_set_sources.py: error: unrecognized arguments: --port 57112 --client 127.0.0.1 --multiproc --file WIN-2OLQLBCH8FO\n'

Но я запускаю команду в терминале, получаю правильное сообщение :

Команда:

app/libs/ansible/sources/redis_set_sources.py --host 'WIN-2OLQLBCH8FO'

Обычное сообщение:

{"hostname": "WIN-2OLQLBCH8FO", "port": 5985, "ansible_host": "192.168.0.254", "ansible_user": "administrator", "ansible_ssh_password": "All4Icode", "connection": "winrm", "private_key": null, "transport": "ntlm"}

1 Ответ

0 голосов
/ 10 февраля 2020

Определенно вы передаете неожиданные параметры своей команде, поскольку сообщение об ошибке также указывает в терминале, если вы передадите их:

error: unrecognized arguments: --port 57112 --client 127.0.0.1 --multiproc --file

Я думаю, что решение вашей проблемы описано в этой статье:

https://youtrack.jetbrains.com/issue/PY-7464?_ga=2.7923002.94425001.1581367237-1197479344.1576355856

В основном это советует:

  1. Закрыть PyCharm
  2. Редактировать .idea / workspace. xml файл и измените строку с:

на

<option name="MULTIPROCESS" value="false" />

3. Перезапустите pycharm 4. Запустите скрипт в Debug, и он снова заработает.

Я не уверен, что это ваше решение, но шаблон проблемы выглядит так же.

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