これらの特定の定数は、Windows でのみ定義されています。
関連セクションからの引用:
クラスと次のSTARTUPINFO
定数は、Windows でのみ使用できます。
モジュールは次のsubprocess
ことをテストしsys.platform
ます。に等しい場合win32
、STARTUPINFO
およびpywintypes
クラスが定義され、定数が_subprocess
モジュールからインポートされます (これは Windows でのみコンパイルされます)。
これらの定数はsubprocess
Python 2.7.2 まで追加されていないことに注意してください。_subprocess
Python 2.7.1 または 2.7.0 を実行している場合は、モジュールから直接インポートする必要があります。2.7.2 以降には、これらの定数を公開するこのバグ修正が含まれていますが、ドキュメントのバグ修正には、これらの定数が公開されたバージョンについての言及がありませんでした。
これらの定数を追加する、使用できる回避策を次に示します。
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