Tirantes rizados en python popen

Ejecutar subproceso no manejará correctamente las llaves

# Python 2.7.4 import subprocess subprocess.Popen('ls src/*.cpp',shell=True): src/tonemap.cpp src/pch.cpp subprocess.Popen('ls src/{t,p}*.cpp', shell=True) ls: cannot access src/{p,t}*.cpp: No such file or directory 

El mismo progtwig funcionará en una máquina diferente con Python 2.7.2. Ambos sistemas utilizan bash shells.

¿La razón y cómo puedo solucionarlo?

EDITAR:

Al invocar el comando directamente desde la línea de comandos, se obtiene el resultado correcto:

 ls src/{t,p}*.cpp src/tonamep.cpp src/pch.cpp 

shell=True ejecuta /bin/sh que no admite esta syntax. Especifique bash explícitamente:

 from subprocess import check_call check_call('ls src/{t,p}*.cpp', shell=True, executable='/bin/bash') 

En su caso, Popen se ejecutó correctamente, se informa de un error desde ls . Debería dar el mismo error al ejecutar el comando:

 ls src/{t,p}*.cpp 

en la terminal

La otra máquina usa un shell diferente que no maneja esa syntax.