error:NameError:未定义名称"subprocess"

mun*_*ish 26 python solaris

#!/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')
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个错误:

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
Run Code Online (Sandbox Code Playgroud)

jef*_*upp 54

子流程是一个模块.你需要导入它.

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

  • @ RicardoAltamirano,munish:实际上,他不应该.一旦遇到错误,他就不应该养成在stackoverflow上发布的习惯.但是我和你在一起没有继续这里的其他讨论(这主要是针对OP的当然:p). (4认同)