错误:NameError:未定义名称“子进程”[关闭]

Posted

技术标签:

【中文标题】错误:NameError:未定义名称“子进程”[关闭]【英文标题】:error : NameError: name 'subprocess' is not defined [closed] 【发布时间】:2013-01-13 11:00:31 【问题描述】:
#!/usr/bin/python3
username = 'joe'

# generate passphrase
pw_length = 6
phrase = subprocess.check_output(['pwgen', str(pw_length), '1'])
phrase = phrase.decode('utf-8').strip()

dev_null = open('/dev/null', 'w')
passwd = subprocess.Popen(['sudo', 'passwd', user], stdin=subprocess.PIPE,
                          stdout=dev_null.fileno(),
                          stderr=subprocess.STDOUT)
passwd.communicate( ((phrase + '\n')*2).encode('utf-8') )
if passwd.returncode != 0:
    raise OSError('password setting failed')

我该如何解决这个错误:

bash-3.00# python ./pass2.py
Traceback (most recent call last):
  File "./pass2.py", line 6, in ?
    phrase = subprocess.check_output(['pwgen', str(pw_length), '1'])
NameError: name 'subprocess' is not defined

【问题讨论】:

导入子流程? 【参考方案1】:

子进程是一个模块。你需要导入它。

将此作为文件的第二行:import subprocess

【讨论】:

现在我得到了这个phrase = subprocess.check_output(['pwgen', str(pw_length), '1']) AttributeError: 'module' object has no attribute 'check_output' @munish 开始一个新问题。一旦最初的问题得到解决,不要只是编辑你原来的问题来提出一个新的问题。您应该接受 jknupp 的回答并就您的“check_output”错误提出一个新问题。我回滚了你的编辑,所以你可以提出一个新问题。 @RicardoAltamirano,munish:实际上,他不应该这样做。他不应该养成一遇到错误就在 *** 上发帖的习惯。但是我同意你不要在这里继续其他讨论(这当然主要针对 OP :p)。 @Keyser 好点。在此处发布之前,应始终进行调试。

以上是关于错误:NameError:未定义名称“子进程”[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

错误flask-sqlalchemy NameError:未定义全局名称'joinedload'

NameError:未定义名称“convertToBinaryData”

NameError:名称“意思”未定义

我收到类似 NameError 的错误:未定义名称“df_clean”

NameError:未定义全局名称“reduce”

NameError:名称“包”未定义