Как сделать OS.EXECV () в Python в Windows без отсоединения от консоли?

Я использую Python 2.6 в Windows 7. У меня есть файл Windows .CMD, который вызывает Python для запуска веб-сервера Cherrypy (версия 3.1 .2). Я запускаю этот файл .cmd, выполняя его в приглашении в оболочку CMD Windows. Когда Crebrypy замечает, что один из его зависимых файлов изменился, он перезапускается. В этой конфигурации на Windows возникают пара, которые возникают пара, потому что вызов, который CherryPy использует для перезапуска, это

os.execv(sys.executable, args)

, но вы не можете вызвать исполняемый файл Python в файле .cmd. Мне удалось обойти эту проблему через различные гимнастики Python, и теперь я получил его перезапущен, вызывая (по существу)

os.execv(sys.argv[0], args)

, но перезапущенный процесс отсоединен с клавиатуры; Он поймает Ctrl-C, а затем просим

Terminate batch job (Y/N)?

, но тип Y или Ni попадает не заканчивая файл .cmd, но в оболочке Windows CMD, и она отвечает

'Y' is not recognized as an internal or external command, operable program or batch file.

, так как я могу установить Вещи в Windows, чтобы сохранить перезапущенный процесс в том, что я бы назвал «передним планом» в UNIX?

6
задан Sam Bayer 31 August 2011 в 23:19
поделиться