Python Popen,破管erro

时间:2014-05-05 15:17:25

标签: python libsvm


目前我使用libsvm,用Python编写的库(easy.py和grid.py [1])。我有" [Errono32]:管道坏了"。我不知道python但是经过一段时间的谷歌搜索错误,我知道它来自读/写文件。因此我在这里复制了所有的I / O文件访问代码,我不知道其中哪一个导致了这个问题。希望你能帮助我。

分数1:

class LocalWorker(Worker):
    def run_one(self,c,g):
        cmdline = self.get_cmd(c,g)
        result = Popen(cmdline,shell=True,stdout=PIPE,stderr=PIPE,stdin=PIPE).stdout
        for line in result.readlines():
            if str(line).find('Cross') != -1:
                return float(line.split()[-1][0:-1])

分数2:

class SSHWorker(Worker):
    def __init__(self,name,job_queue,result_queue,host,options):
        Worker.__init__(self,name,job_queue,result_queue,options)
        self.host = host
        self.cwd = os.getcwd()
    def run_one(self,c,g):
        cmdline = 'ssh -x -t -t {0} "cd {1}; {2}"'.format\
            (self.host,self.cwd,self.get_cmd(c,g))
        result = Popen(cmdline,shell=True,stdout=PIPE,stderr=PIPE,stdin=PIPE).stdout
        for line in result.readlines():
            if str(line).find('Cross') != -1:
                return float(line.split()[-1][0:-1])

第3部分:

if options.gnuplot_pathname:
    gnuplot = Popen(options.gnuplot_pathname,stdin = PIPE,stdout=PIPE,stderr=PIPE).stdin
else:
    gnuplot = None

我使用Mac OS 10.9,python 2.7.5,我有两台计算机,运行在相同的macos和python版本上,但是一个可以运行正常而没有错误,一个运行时出现管道错误。
如果您有任何建议,请告诉我。非常感谢你。

1 个答案:

答案 0 :(得分:1)

试图写入已关闭的管道时发生管道损坏。显然你只写gnuplot。它看起来像你的一个系统gnuplot只是无法启动。根据现有信息,我无法提供更多帮助。