首页 > 解决方案 > AssertionError: Failed in nopython mode pipeline(步骤:分析字节码)

问题描述

我制作了一个 Python 程序来遍历一个 csv 数据文件并生成一个新的 csv 文件。为了减少运行时间,我尝试使用 numba,下面是我的代码:

import csv
import timeit
from numba import jit
@jit(nopython=True)
def main():
    file = open("test_data.csv","r")
    newfile = open("rewrite5_gpu_output.csv",'w', newline='')
    writer = csv.writer(newfile)
    dataframe = []
    start = timeit.default_timer()
    for line in file:
        new_line = []
        line = line.split(",")
        for item in line:
            if item == '\n':
                pass
            elif item == "active":
                new_line.append(1) # 1 = active p53
            elif item == "inactive":
                new_line.append(0) # 0 = inactive p53
            else:
                try:
                    item = item.strip('\n')
                    item = float(item)
                    new_line.append(item)
                except:
                    pass
        dataframe.append(new_line)
        #print(new_line)
    writer.writerows(dataframe)
    newfile.close()
    stop = timeit.default_timer()
    print('Time: ', stop - start)

main()

但是,我收到错误:

AssertionError: Failed in nopython mode pipeline (step: analyzing bytecode)
SETUP_EXCEPT(arg=32, lineno=23)

标签: python-3.xnumba

解决方案


尝试注释掉“try:”和“except:”。在其他一些帖子中,我读到了 try - except 不受 numba.jit 支持,它在我的 python 脚本中工作。

兄弟,


推荐阅读