0
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が初めてです。私を助けてください。

4

2 に答える 2

1

以下は、試してみるとうまくいきます-問題がユニコード翻訳にあったかどうかはわかりません。

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()
于 2015-07-03T10:54:25.497 に答える
0

明らかに、反復可能であることがProcessWrapper()期待argumentsされます(リストまたはタプルで十分です)。

の代わりにNone()(空のタプル)を使用します。

ただし、これは文字列に設定するworkingDir 必要があることに注意してください。os.getcwd()正常なデフォルトに使用します。timeoutまた、待機する秒数の整数に設定する必要があります。60秒(1分)は何よりも良いと思います。

引数と引数を省略して、デフォルトのままにしておくことができます。stdoutstderr

process = ProcessWrapper("C:\\Program Files\\Mozilla Firefox\\firefox", arguments=() environs=environ, workingDir=os.getcwd(), state=FOREGROUND, timeout=60)
于 2012-11-22T10:08:31.890 に答える