Я пытаюсь запустить parsey mcparseface из подпроцесса. Я получаю разные результаты при запуске Popen vs call, и мне интересно, почему это так. Это работает.subprocess.Popen выполняет .sh иначе, тогда subprocess.call
process = subprocess.Popen("./syntaxnet/demo.sh", cwd="/home/kahless/models/syntaxnet")
Это не так.
process = subprocess.call("./syntaxnet/demo.sh", cwd="/home/kahless/models/syntaxnet")
Оба варианта выполняются без ошибок python, но при запуске .call parsey не выполняется правильно. Это также происходит при использовании .wait() или .communicate() с помощью Popen. То, что я пытаюсь сделать, это приостановить выполнение моего кода до тех пор, пока парси не закончит. Не уверен, что происходит здесь.
Редактировать. Когда я говорю, что parsey не выполняется правильно, я имею в виду, что я получаю другой конечный результат от запуска файла demo.sh. Вот разные выходы.
Когда все работает правильно
INFO: tensorflow: Обработанные 10 документов INFO: tensorflow: Всего обработанных документов: 10 INFO: tensorflow: Num правильные символы: 0 INFO: tensorflow: всего лексем: 170 INFO : tensorflow: секунды, прошедшие в оценке: 0.18, eval metric: 0.00% INFO: tensorflow: обработано 10 документов INFO: tensorflow: Всего обработанных документов: 10 INFO: tensorflow: num correct tokens: 10 INFO: tensorflow: total tokens : 153 INFO: tensorflow: секунды, прошедшие в оценке: 0.86, e вал метрический: 6.54%
Когда они этого не делают.
INFO: tensorflow: Всего Обработанные документы: 0 INFO: tensorflow: Всего обработанных документов: 0
Уточнитните 'parsey не полный correctly'. –
Конечно, я обновил свой ответ, чтобы показать результат. Извините, что расплывчато. – Kahless
Блоки вызовов Popen нет. –