缓存numba函数会导致错误



每当我对函数使用缓存时。。

@jit(cache=True)
def test(x):
return x

我得到一个类似于的RuntimeError。。

RuntimeError:无法缓存函数"test.test":没有可用于文件"/tmp/ipykernel_33392909/373547737.py"的定位器

。。并且是的/tmp应该是可写的(rwxrwxrwt(。

这里发生了什么事?

一个文件被另一个文件缓存。

当@jit编译一个函数时,它会创建一个与该函数的字节码同名的".py"文件。每次调用test时,Numba都会尝试使用该文件,但由于缓存中没有该文件的定位器,因此失败。这个问题已经报道过了。

它似乎是由condapip的混合引起的。我以为conda会阻止这种情况,但没有。在完全擦除了pip和conda之后,它现在可以单独使用conda。

此外,似乎还涉及到一个bug。

给外界的建议:如果你没有特殊的理由,就不要使用conda。

最新更新