Ejecutando scripts de python con subproceso en windows. Las envolturas del verificador de código de Python desde el emacswiki producen el mismo error

Así que estoy tratando de configurar los verificadores de código de python sugeridos en la wiki de emacs. Sin embargo, no puedo ejecutar esos scripts en mi consola de comandos y mucho menos emacs. La sección se encuentra aquí: http://www.emacswiki.org/emacs/PythonProgrammingInEmacs#toc7 Y probé el script que se encuentra aquí y aquí

En ambos casos, cambié la primera línea de #! Usr / bin python con la ruta completa de mi ejecutable de python y cuando ejecuto los scripts a través de

python pylint_etc_wrappers.py someModule.py 

o

 python pycheckers.py soemModule.py 

ambos se reducen al mismo error, probablemente porque intentan abrir un subproceso. Aquí está el rastro:

 Traceback (most recent call last): File "pycheckers.py", line 254, in  runner.run(source_file) File "pycheckers.py", line 91, in run process = Popen(args, stdout=PIPE, stderr=PIPE) File "C:\devel\Python\Python-2.7\Lib\subprocess.py", line 672, in __init__ errread, errwrite) File "C:\devel\Python\Python-2.7\Lib\subprocess.py", line 882, in _execute_child startupinfo) WindowsError: [Error 2] The system cannot find the file specified 

El segundo script sugiere cambiar la primera línea a la ruta del intérprete (lo que hice) y cambiar la ruta en la función principal, que se parece a algo como:

 os.environ['PATH'] = \ path.dirname(sys.executable) + ':' + os.environ['PATH'] 

que era un poco confuso para mí. ¿Algunas ideas?

Tengo pylint 0.25.1, instalado utilizando easy_install (Python 2.7, Win XP). Tanto pylint como pylint.bat se instalaron en Python27 / Scripts (este directorio está en mi PATH).

También obtengo el error “El sistema no puede encontrar el archivo especificado” cuando se ejecuta el script pylint_etc_wrapper.py sin cambios.

Ejecutar pylint desde el script funciona si

 command = 'pylint' 

se cambia a

 command = 'pylint.bat' 

Otra forma de hacerlo funcionar es agregar shell=True a la llamada Popen() .

Realmente no puedo explicar todo esto, pero hay un error de Python no resuelto que parece que podría ser relevante: http://bugs.python.org/issue8557 .