Если я выполнить следующий код питона на Windows:Python: на Linux, subprocess.Popen() работает странно с оболочкой = True
import subprocess
subprocess.Popen([ 'python', 'foo' ], shell = True).communicate()
Я получил ошибка записывается в стандартный вывод, как и ожидалось:
python: can't open file 'foo': [Errno 2] No such file or directory
Но если я выполняю тот же код на linux (ubuntu, OSX - любой), я получил вместо этого текст интерактивный python REPL! Пример:
[email protected]:~/Documents$ python test.py
Python 2.7.3 (default, Jab 2 2013, 16:53:07)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information
>>>
Почему такое странное поведение? выполнение интерпретатора python с аргументом ('foo') должно быть переведено в оценочный режим на всех платформах, а не в режим REPL.
+1 для благоразумно подчеркивая – inspectorG4dget