Python 模块子流程没有属性';开始使用ShowWindow&x27;

Python 模块子流程没有属性';开始使用ShowWindow&x27;,python,python-3.x,subprocess,Python,Python 3.x,Subprocess,Hi Stack Overflow用户 我遇到了一个令人沮丧的问题,找不到答案 昨天我试图找到一种隐藏subprocess.Popen的方法。例如,如果我打开cmd。我希望它被永久地隐藏起来 我发现这个代码: kwargs = {} if subprocess.mswindows: su = subprocess.STARTUPINFO() su.dwFlags |= subprocess.STARTF_USESHOWWINDOW su.wShowWindow =

Hi Stack Overflow用户

我遇到了一个令人沮丧的问题,找不到答案

昨天我试图找到一种隐藏subprocess.Popen的方法。例如,如果我打开cmd。我希望它被永久地隐藏起来

我发现这个代码:

kwargs = {}
if subprocess.mswindows:
     su = subprocess.STARTUPINFO()
     su.dwFlags |= subprocess.STARTF_USESHOWWINDOW
     su.wShowWindow = subprocess.SW_HIDE
     kwargs['startupinfo'] = su 
subprocess.Popen("cmd.exe", **kwargs)
它就像一个符咒

但今天,由于不需要深入了解的原因,我不得不重新安装python 3(32位)

现在,当我运行我的程序时,我得到以下错误:

Traceback (most recent call last):
  File "C:\Python31\hello.py", line 7, in <module>
    su.dwFlags |= subprocess.STARTF_USESHOWWINDOW
AttributeError: 'module' object has no attribute 'STARTF_USESHOWWINDOW'
回溯(最近一次呼叫最后一次):
文件“C:\Python31\hello.py”,第7行,在
su.dwFlags |=subprocess.STARTF_USESHOWWINDOW
AttributeError:“模块”对象没有属性“STARTF\u USESHOWWINDOW”
我正在使用32位的Python 3.1.3。。。就像以前一样

如果你有任何线索/选择,请张贴,谢谢


注意:我正在寻找一个简短的方法来隐藏应用程序,而不是像两页代码请

我误读了这个问题,对不起。您可能在
子流程
\u子流程
模块上有阴影。如果是安装故障,请尝试删除并重新安装Python 3。

可能是重新安装出错,或者是您创建了一个名为subprocess.py的模块,但忘记了它。:)

请尝试以下操作:

import subprocess
print(subprocess.__file__)
这将为您提供当前Windows安装子流程模块的路径,即

C:\Python31\Lib\subprocess.pyc
如果它说

C:\PYthon31\subprocess.py
它正在导入您创建的模块。(您可能想考虑不将Python文件放到Python目录中,如在上面的示例中。对于每个项目有一个单独的目录是更好的主意,可能意味着您不必经常安装Python。))< /P> < Python 3.1.3>和2.7

import subprocess
import sys

params = dict()
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
params['startupinfo'] = startupinfo

p = subprocess.Popen("cmd.exe", **params)

您可以在Python安装中重新创建或检查所述问题:

import subprocess
subprocess.STARTF_USESHOWWINDOW
如果问题仍然存在,您将收到以以下行结尾的错误消息:

AttributeError: 'module' object has no attribute 'STARTF_USESHOWWINDOW'
该问题的可能解决方案是通过以下方式将旧代码导入您的代码库:

import subprocess
import _subprocess
然后仅将其用于这两个有问题的属性:

# do not show window
info = subprocess.STARTUPINFO()
info.dwFlags = _subprocess.STARTF_USESHOWWINDOW
info.wShowWindow = _subprocess.SW_HIDE

就这样。简单实用-无需卸载/安装Python或恢复到旧版本。

您确定运行的是相同的代码吗?相同的代码是的,我已多次尝试卸载/重新安装。。。如果有人能尝试在py3上运行上述代码,这样我就可以确认这些代码是否正常工作,并且我有一个严重的问题。嗨,我在Python2.7上也有同样的问题。从2.6升级到2.7后出现问题。我加载了正确的模块(C:\Python27\Lib\subprocess.pyc)。你们知道可能出了什么问题吗?嗯,子流程模块正在工作。。。一个简单的子流程。Popen工作得非常好。您建议的代码:。。。。。打印(子流程文件)。。。。。返回:C:\Python31\lib\subprocess。py@Rhys:那么我建议您删除C:\Python31,然后再做一次。好的,我会尝试将它放在其他目录或其他什么地方。我已经尝试重新安装了一些times@Rhys:您是否首先完全删除了C:\Python31?我从控制面板卸载了if并删除了剩余文件夹。根据我得到的回应,代码应该可以正常工作,所以至少我已经把它缩小到了一个技术错误,嗯,子流程模块正在工作。。。一个简单的子流程。Popen工作得非常好。我试过多次重新安装,试过reg clean tooThank给你,给你回复胰蛋白酶。看来我自己解决了这个问题。Python 3.1.2完美地执行subprocess.STARTF_USESHOWWINDOW。Python 3.1.3失败,响应为AttributeError