Выполнение команды в модуле с использованием 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):
File "/home/devacc/git/fine-tuning-service/app/k8s/k8s_client.py", line 140, in exec_command_in_pod_asyncio
process = await asyncio.create_subprocess_exec(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/subprocess.py", line 224, in create_subprocess_exec
transport, protocol = await loop.subprocess_exec(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/base_events.py", line 1744, in subprocess_exec
transport = await self._make_subprocess_transport(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/unix_events.py", line 211, in _make_subprocess_transport
transp = _UnixSubprocessTransport(self, protocol, args, shell,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/base_subprocess.py", line 36, in __init__
self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
File "/usr/lib/python3.12/asyncio/unix_events.py", line 820, in _start
self._proc = subprocess.Popen(
^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/subprocess.py", line 1026, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.12/subprocess.py", line 1955, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [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\'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
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
attr = getattr(var, name)
^^^^^^^^^^^^^^^^^^
AttributeError: characters_written
'
Я пробовал отладить код, но не нашел реального решения.

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

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

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

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

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

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