Image

Imagevk999 wrote in Imageru_python

subprocess.Popen и stderr на windows

есть вот такой простой фрагмент:

                   p = subprocess.Popen(cmd,                                  
                                        shell=True,
                                        bufsize=1,
                                        env=self.subprocess_env,
                                        cwd=wdir,
                                        stdout=subprocess.PIPE,
                                        stderr=subprocess.PIPE
                                        )
                   stdout, stderr = p.communicate(None)
                   logging.info(stdout)
                   logging.info(stderr)
                   retcode = p.wait()

процесс который запускается отсюда это nmake.exe или cl.exe

к сожалению не перехватывается stderr, так что ошибки компиляции не показываются. Ума не приложу как это победить. Может кто знает ?

P.S. можно и без p.communicate(), а просто читать из p.stdout p.stderr. Stdout весь есть, хоть и буферизированный, а stderr нет.