Python 错误:name错误:name';子流程';没有定义
如何修复此错误:Python 错误:name错误:name';子流程';没有定义,python,solaris,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(['
#!/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')
子流程是一个模块。你需要导入它
把它作为文件中的第二行:
import subprocess
import subprocess?现在我得到了这个phrase=subprocess。检查输出(['pwgen',str(pw_length),'1'])属性错误:'module对象没有属性'check_output'
@munish开始一个新问题。不要只编辑你的原始问题,在初始问题解决后再问一个新问题。您应该接受jknupp的回答,并就“检查输出”错误提出新问题。我回滚了你的编辑,这样你可以问一个新问题。@RicardoAltamirano,munish:事实上,他不应该。他不应该养成一遇到错误就在stackoverflow上发帖的习惯。但我同意你的观点,不再继续这里的其他讨论(这当然主要是针对OP:p)。@Keyser说得好。在发布到此处之前,应始终进行调试。
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