首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在python pysys中使用helper.py启动进程

无法在python pysys中使用helper.py启动进程
EN

Stack Overflow用户
提问于 2012-11-22 18:05:45
回答 2查看 97关注 0票数 0
代码语言:javascript
复制
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()

我得到了这个错误..

代码语言:javascript
复制
  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的新手。请帮帮我。

EN

回答 2

Stack Overflow用户

发布于 2015-07-03 18:54:25

当我尝试它的时候,下面的代码对我是有效的--不确定这个问题是不是出现在unicode翻译中。

代码语言:javascript
复制
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()
票数 1
EN

Stack Overflow用户

发布于 2012-11-22 18:08:32

显然,ProcessWrapper()希望arguments是可迭代的(列表或元组就可以)。

使用() (一个空元组)而不是None

但是请注意,应该将workingDir设置为字符串。对合理的默认值使用os.getcwd()。还必须将timeout设置为等待秒数的整数。我想60秒(整整一分钟)已经足够了。

您可以省略stdoutstderr参数,并保留它们的默认值:

代码语言:javascript
复制
process = ProcessWrapper("C:\\Program Files\\Mozilla Firefox\\firefox", arguments=() environs=environ, workingDir=os.getcwd(), state=FOREGROUND, timeout=60)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13510193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档