Команда работает в терминале, но не работает при передаче в подпроцессPython

Программы на Python
Ответить
Anonymous
 Команда работает в терминале, но не работает при передаче в подпроцесс

Сообщение Anonymous »

Проект, над которым я работаю, пытается запустить черный форматтер на нашем перехватчике precommit. Команда работает в терминале, но не работает в подпроцессе.

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

def run_black() -> None:
"""Runs black formatter."""
cmd = ["git diff --cached --name-only --diff-filter=d", "|", "grep -E \\.py$", "|", "xargs", "black --skip-string-normalization"]
subprocess.run(cmd, shell=True, check=True, text=True)
Я намеренно внес изменения, чтобы Блэк выполнил форматирование, но ничего не изменилось, и фиксация прошла. Я также не получаю сообщения об ошибке. Я протестировал команду на своем терминале, и она работает.
Исполняемый файл sys.exe — /usr/local/bin/python3, однако моя среда Python — /home/dev/opensource/.direnv /python-3.9.20/bin

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

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

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

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

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

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