Я использую модуль Python 3.6.3 и subprocess
для запуска другого скрипта Python
# main.py
#!/bin/env python
from subprocess import Popen,PIPE
from sys import executable
p = Popen([executable, 'test.py', 'arg1'],shell=True, stdout=PIPE)
p.wait()
print(p.stdout.read().decode())
и
# test.py
import sys
print(sys.argv)
Я ожидаю, что он будет запускаться и выполняться test.py
.Тем не менее, он открывает интерпретатор Python в интерактивном режиме!
Я протестировал вариант shell=False
, он работает.Я протестировал строковую форму, а не форму списка args
, она работает.
Я не уверен, является ли это ошибкой или нет.