使用Python多处理时出现错误消息

使用Python多处理时出现错误消息,python,parallel-processing,multiprocessing,pysam,Python,Parallel Processing,Multiprocessing,Pysam,我需要将一个非常大的.bam文件转换为.bed文件,尽管我通过使用bedops的bam2bed并行找到了一个解决方案,该并行支持SEG和gnuParallel,我可以访问的两个集群只支持slurm和torque调度程序,我对tcsh不太了解,但我甚至无法修改脚本以满足slurm和torque的要求 由于我对Python略知一二,我计划使用Python的多处理模块来实现这一点,但是,下面的代码发出了一条奇怪的消息: “Python在使用calignmentfile.so插件时意外退出” 此消息是否

我需要将一个非常大的.bam文件转换为.bed文件,尽管我通过使用bedops的bam2bed并行找到了一个解决方案,该并行支持SEG和gnuParallel,我可以访问的两个集群只支持slurm和torque调度程序,我对tcsh不太了解,但我甚至无法修改脚本以满足slurm和torque的要求

由于我对Python略知一二,我计划使用Python的多处理模块来实现这一点,但是,下面的代码发出了一条奇怪的消息:

“Python在使用calignmentfile.so插件时意外退出”


此消息是否意味着从pysam.AlignmentFile()读取的内容不支持并行性,或者Python不支持这种并行性?我使用常规文本文件测试这段代码,它运行良好(例如,代码被注释)。

pysam
确实存在一些并发性问题。如果您看到,您将看到有一个it的返回类型

pysam
确实存在一些并发性问题。如果你看到它,你会看到它的返回类型

# The code here is just a test code, ignore its real meaning.
import multiprocessing as mp
import pysam

def work(read):
    return read.query
    # return read.split()[0]

if __name__ == '__main__':
    cpu = mp.cpu_count()
    pool = mp.Pool(cpu)

    sam = pysam.AlignmentFile('foo.bam', 'rb')
    read = sam.fetch(until_eof=True)

    # f = open('foo.text', 'rb')
    # results = pool.map(work, f, cpu)

    results = pool.map(work, read, cpu)
    print(results)