Выполнение команды в модуле с использованием asyncio вызывает исключениеPython

Программы на Python
Ответить
Anonymous
 Выполнение команды в модуле с использованием asyncio вызывает исключение

Сообщение Anonymous »

Я хочу выполнить длительную задачу в одном модуле из другого. Для этого я начал использовать subprocess.Popen для выполнения этой задачи, которая делает то, что мне нужно. Однако subprocess.Popen не является асинхронным и, таким образом, блокирует цикл событий, который предотвращает выполнение других конечных точек во время работы процесса. Чтобы сделать эту задачу асинхронной, я переключился на asyncio.create_subprocess_exec, однако получаю ошибки, которые я понимаю, как исправить.
Вот команда, которую я выполняю, которая работает с `subprocess.Popen '

Код: Выделить всё

kubectl exec -n ns1 devpod-654fcd84dd-r7spk -- /bin/sh -c llamafactory-cli train /home/llama-factory-runtime/.tmpfiles/e2ece994-7f10-442c-aae4-e938381fb67a.yaml > .tmpfiles/e2ece994-7f10-442c-aae4-e938381fb67a.log 2>&1
Это ошибка, которую я получаю. Может ли кто-нибудь помочь мне понять причину и возможное решение этой ошибки? Я думаю, это связано с тем, где выполняется команда или kubectl, но я полностью уверен.

Код: Выделить всё

No such file or directory

'Traceback (most recent call last):\n  File "/home/devacc/git/fine-tuning-service/app/k8s/k8s_client.py", line 140, in exec_command_in_pod_asyncio\n    process = await asyncio.create_subprocess_exec(\n              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/usr/lib/python3.12/asyncio/subprocess.py", line 224, in create_subprocess_exec\n    transport, protocol = await loop.subprocess_exec(\n                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/usr/lib/python3.12/asyncio/base_events.py", line 1744, in subprocess_exec\n    transport = await self._make_subprocess_transport(\n                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/usr/lib/python3.12/asyncio/unix_events.py", line 211, in _make_subprocess_transport\n    transp = _UnixSubprocessTransport(self, protocol, args, shell,\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/usr/lib/python3.12/asyncio/base_subprocess.py", line 36, in __init__\n    self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,\n  File "/usr/lib/python3.12/asyncio/unix_events.py", line 820, in _start\n    self._proc = subprocess.Popen(\n                 ^^^^^^^^^^^^^^^^^\n  File "/usr/lib/python3.12/subprocess.py", line 1026, in __init__\n    self._execute_child(args, executable, preexec_fn, close_fds,\n  File "/usr/lib/python3.12/subprocess.py", line 1955, in _execute_child\n    raise child_exception_type(errno_num, err_msg, err_filename)\nFileNotFoundError: [Errno 2] No such file or directory: \'kubectl exec -n dsx-genai-finetuned-models-api dsx-ai-accelerators-llama-factory-654fcd84dd-r7spk -- /bin/sh -c llamafactory-cli train /home/llama-factory-runtime/.tmpfiles/e2ece994-7f10-442c-aae4-e938381fb67a.yaml > .tmpfiles/e2ece994-7f10-442c-aae4-e938381fb67a.log 2>&1\'\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File "/home/devacc/.vscode-server/extensions/ms-python.debugpy-2024.8.0/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py", line 189, in _get_py_dictionary\n    attr = getattr(var, name)\n           ^^^^^^^^^^^^^^^^^^\nAttributeError: characters_written\n'
Я пробовал отладить код, но не нашел реального решения.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -exception
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»