В ответ на запрос более конкретного кода для иллюстрации проблемы Я предоставил следующую информацию. Я запускаю код Python в терминале. Test.c выполняется за мс. Но по показанному времени видно, что подпроцесс не возвращается в течение 12,6 секунд.
Что делает subprocess.run в течение 12,6 секунд и как мне избавиться от этой задержки?
И вот самое интересное. Я использую Geany в качестве программного обеспечения для редактирования и сборки. Если я создам test.c, код запустится без задержки. Если я создаю test.c, задержка составляет 12,6 секунды.
Обратите внимание, что из аргументов команды можно передать файл любого типа. Я позволю вам заменить любой файл по вашему желанию.
test.py:
Код: Выделить всё
import time
import subprocess
from datetime import datetime
cmd_args = ['/home/wa4ywm/gr-ft8_rxtx/Test/test', '/home/wa4ywm/ gr-ft8_rxtx/python/Hello.txt']
now = float(datetime.now().strftime('%S.%f'))
print ("Before ft8_decode = ", now)
ft8_decode = subprocess.Popen(cmd_args, stdout=subprocess.PIPE)
output, _ = ft8_decode.communicate()
print(output.decode())
now = float(datetime.now().strftime('%S.%f'))
print ("After ft8_decode = ", now)
wa4ywm@raspberrypi:~/gr-ft8_rxtx/Test $ python3 test.py
Before ft8_decode = 24.282739
After ft8_decode = Sun Jan 19 13:52:25 2025
After ft8_decode = 36.900071
< /code>
test.c:
#include
#include
#include
#include
#include
#include
int main(int argc, char **argv)
{
printf("Time4 before load_wav = \n");
return 0;
}
< /code>
Следующий Makefile адаптирован из файла, используемого для более крупного проекта. < /p>
Makefile: < /p>
CFLAGS = -O3 -ggdb3 -fsanitize=address
CPPFLAGS = -std=c11 -I.
LDFLAGS = -lm -fsanitize=address -static-libasan
TARGETS = test
.PHONY: run_tests all clean
all: $(TARGETS)
run_tests: test
@./test
test: test.o
$(CXX) $(LDFLAGS) -o $@ $^
clean:
rm -f *.o ft8/*.o common/*.o fft/*.o $(TARGETS)
< /code>
Я понял, что эта проблема возникла после обновления программного обеспечения для моей операционной системы и обновления радио GNU. Я работаю на Raspberry Pi, и ОС была обновлена до книжного червя. Радио GNU было обновлено до 3.10, которое включало обновление на Python 3.11.
Любые комментарии?
Подробнее здесь: https://stackoverflow.com/questions/793 ... r-too-long
Мобильная версия