我找不到子进程常量,但安装了包。以下代码在第二行失败。你知道为什么吗 ?
import subprocess
si.dwFlags = subprocess.STARTF_USESTDHANDLES | subprocess.STARTF_USESHOWWINDOW
print si.dwFlags
通常这些常量应该在包中(参见http://docs.python.org/2/library/subprocess.html)。
我使用 Python 2.7
我找不到子进程常量,但安装了包。以下代码在第二行失败。你知道为什么吗 ?
import subprocess
si.dwFlags = subprocess.STARTF_USESTDHANDLES | subprocess.STARTF_USESHOWWINDOW
print si.dwFlags
通常这些常量应该在包中(参见http://docs.python.org/2/library/subprocess.html)。
我使用 Python 2.7
这些特定常量仅在 Windows 上定义。
引用相关部分:
类和以下
STARTUPINFO
常量仅在 Windows 上可用。
该subprocess
模块测试sys.platform
; 如果等于win32
,则定义STARTUPINFO
和pywintypes
类,并从_subprocess
模块中导入常量(仅在 Windows 上编译过)。
请注意,这些常量subprocess
直到 Python 2.7.2 才被添加;如果您正在运行 Python 2.7.1 或 2.7.0,则必须_subprocess
直接从模块中导入它们。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
我找到了一种方法:
subprocess._subprocess.STARTF_USESHOWWINDOW