Python 3.3.3 Windows 7
Here is the full stack:
Traceback (most recent call last):
File "Blah\MyScript.py", line 578, in Call
output = process.communicate( input=SPACE_KEY, timeout=600 )
File "C:\Python33\lib\subprocess.py", line 928, in communicate
stdout, stderr = self._communicate(input, endtime, timeout)
File "C:\Python33\lib\subprocess.py", line 1202, in _communicate
self.stdin.write(input)
OSError: [Errno 22] Invalid argument
Код выглядит следующим образом:
process = subprocess.Popen( arguments,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True,
env=environment )
output = process.communicate( input=SPACE_KEY, timeout=600 )
Этот код работает сотни раз в день без проблем. Но если на одном компьютере работает более одного script (тот же script, но иногда из разных папок), я получаю сообщение об ошибке. Сценарии не выполняют одно и то же (т.е.: другой script не выполняет подпроцесс, когда я получаю эту ошибку).
Код подпроцесса вызывает ошибку со многими различными командами, поданными на нее.
Итак, у кого-то есть идея о том, что происходит? У интерпретатора есть проблема с множественным исполнением (в разных процессах)? Тот же код, который нормально работает отлично, дерьмо, если интерпретатор работает с тем же (или очень похожим) скриптом. Но они обычно выполняют разные части script.
Я в недоумении: использование одного процессора на 8-ядерном компьютере раздражает.