Python的無效參數3.3.3 Windows 7的OSERROR:[錯誤22]在子
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)
此代碼運行數百,一日2次沒有問題。但是,如果多個腳本在同一臺計算機上運行(相同的腳本,但有時來自不同的文件夾),則會出現此錯誤。腳本不執行相同的操作(即:當我收到此錯誤時,其他腳本不執行子進程)。
subProcess代碼引發了許多不同的命令行輸入給它的錯誤。
那麼,任何人都有一個想法,發生了什麼?解釋器是否有多個執行的問題(在不同的進程中)? 相同的代碼通常可以很好地工作,如果解釋器運行相同(或非常相似)的腳本,則會出現問題。但他們通常執行腳本的不同部分。
我很茫然:在8核心機器上使用單個處理器很煩人。
什麼是論據? –
你在運行什麼操作系統?它看起來像窗戶,但因爲這似乎是環境,你應該在你的問題中包括這一點。 – b4hand
檢查沒有文件名衝突,即腳本不競爭相同的資源。你是否從同一個Python腳本啓動多個子進程?你使用'threading'模塊嗎?嘗試[創建最小完整代碼示例](http://stackoverflow.com/help/mcve),以解決您的問題 – jfs