這些特定的常量只在Windows上定義。
從relevant section報價:
的STARTUPINFO
類及以下常量僅適用於Windows。
subprocess
模塊測試sys.platform
;如果等於win32
,則定義STARTUPINFO
和pywintypes
類,並從_subprocess
模塊(它只在Windows上編譯)導入常量。
請注意,在Python 2.7.2之前,這些常量不會被添加到subprocess
;如果您正在運行Python 2.7.1或2.7.0,則必須直接從_subprocess
模塊中導入它們。 2.7.2和更新包括this bugfix暴露出這些常量,但documentation bugfix沒有提到這些常量暴露在版本
這裏是你可以用一種變通方法,即增加了這些常量爲您提供:
if not hasattr(submodule, 'STD_INPUT_HANDLE'):
import _submodule
_missing = (
'STD_INPUT_HANDLE', 'STD_OUTPUT_HANDLE', 'STD_ERROR_HANDLE', 'SW_HIDE',
'STARTF_USESTDHANDLES', 'STARTF_USESHOWWINDOW')
for _name in _missing:
setattr(submodule, _name, getattr(_submodule, _name))
del _submodule, _name, _missing
不用說你錯過了從文檔中的線......(即首先創建'si'的人嗎? ) –
是忘了在示例中添加它。 si = subprocess.STARTUPINFO() – Maxi