, когда я запускаю следующий код:
output = subprocess.Popen("python -c 'import sys; print(sys.version_info[:])'", shell=True)
print(output.communicate()[0])
Я получаю (3, 4, 3, 'финал', 0)
как вывод, указывающий, что он запустил python3.4
однако, когда я запускаю python -c 'import sys; print(sys.version_info[:])'
в терминале, я получаю (2, 7, 6, 'final', 0), указывая, что он запустил python2. Я не уверен, как заставить popen запустить python2.
Я также обнаружил, что когда я вызываю popen для запуска сценария оболочки, который запускает сценарий python, он по умолчанию будет использовать python3, даже если сценарий имеет #!/usr/bin/env python
, который указывает на python2.