import sys, os, os.path, re, string, time, thread, logging, copy, math, stat
from pysys import log
from pysys.constants import *
from pysys.process.helper import ProcessWrapper
def __stringToUnicode( s):
""" Converts a unicode string or a utf-8 bit string into a unicode string.
"""
if isinstance(s, unicode):
return s
else:
return unicode(s, "utf8")
environ ={}
for key in environ: environ[__stringToUnicode(key)] = __stringToUnicode(environ[key])
process = ProcessWrapper("C:\\Program Files\\Mozilla Firefox\\firefox", arguments=None, environs=environ, workingDir=None, state=FOREGROUND, timeout=None, stdout=None, stderr=None)
process.start()我得到了这个错误..
process = ProcessWrapper("notepad", arguments=None, environs=environ, workingDir=None, state=FOREGROUND, timeout=None, stdout=None, stderr=None)
File "C:\Python27\lib\site-packages\pysys\process\plat-win32\helper.py", line 105, in __init__
for a in self.arguments: log.debug(" argument : %s", a)
TypeError: 'NoneType' object is not iterable我是pysys的新手。请帮帮我。
发布于 2015-07-03 18:54:25
当我尝试它的时候,下面的代码对我是有效的--不确定这个问题是不是出现在unicode翻译中。
import logging
from pysys.constants import *
from pysys import stdoutHandler
from pysys.process.helper import ProcessWrapper
stdoutHandler.setLevel(logging.DEBUG)
command="\\Program Files\\Mozilla Firefox\\firefox.exe"
process = ProcessWrapper(command, arguments=[], environs=os.environ, workingDir=os.getcwd(), state=BACKGROUND, timeout=None)
process.start()发布于 2012-11-22 18:08:32
显然,ProcessWrapper()希望arguments是可迭代的(列表或元组就可以)。
使用() (一个空元组)而不是None。
但是请注意,应该将workingDir设置为字符串。对合理的默认值使用os.getcwd()。还必须将timeout设置为等待秒数的整数。我想60秒(整整一分钟)已经足够了。
您可以省略stdout和stderr参数,并保留它们的默认值:
process = ProcessWrapper("C:\\Program Files\\Mozilla Firefox\\firefox", arguments=() environs=environ, workingDir=os.getcwd(), state=FOREGROUND, timeout=60)https://stackoverflow.com/questions/13510193
复制相似问题