波本和Python

2024-05-13 04:32:53 发布

您现在位置:Python中文网/ 问答频道 /正文

正在处理一些代码,在命令提示符下运行时出现错误。。。

NameError: name 'Popen' is not defined

但我同时导入了import osimport sys

这是部分代码

exepath = os.path.join(EXE File location is here)
exepath = '"' + os.path.normpath(exepath) + '"'
cmd = [exepath, '-el', str(el), '-n', str(z)]

print 'The python program is running this command:'
print cmd

process = Popen(cmd, stderr=STDOUT, stdout=PIPE)
outputstring = process.communicate()[0]

我错过了一些基本的东西吗?我不会怀疑的。谢谢!


Tags: path代码importcmdisos错误process
3条回答

Popen在子流程模块中定义

import subprocess
...
subprocess.Popen(...)

或:

from subprocess import Popen
Popen(...)

当您导入模块时,模块的成员不会成为全局命名空间的一部分:您仍然必须在它们前面加上modulename.。所以,你得说

import os
process = os.popen(command, mode, bufsize)

或者,可以使用from module import names语法将内容导入全局命名空间:

from os import popen    # Or, from os import * to import everything
process = popen(command, mode, bufsize)

你应该:

import subprocess
subprocess.Popen(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
# etc.

相关问题 更多 >