我们遇到了一个奇怪的错误,我们不能轻易复制。代码在Linux机器和Windows机器上成功运行;但是,它会在另一台Windows计算机上触发错误(使用与另一台Windows计算机相同的环境)
我们当前的代码库相当大,但我已经尝试将这种情况合成一些小代码片段来说明发生了什么;假设我们有3个文件:
myutils.py
import joblib
def pmap(f, x, n_jobs):
return joblib.Parallel(n_jobs = n_jobs)(joblib.delayed(f)(i) for i in x)
mylib.py
from myutils import pmap
def innerF(x):
return x
def f(x):
return innerF(x)
def runMyFunctionInParallel(x):
return pmap(f, x, n_jobs = -4)
main.py
from myutils import pmap
from mylib import runMyFunctionInParallel
runMyFunctionInParallel([1,2,3,4,5])
我们和你一起做这件事
ipython -i main.py
但是在这台特定的机器上,我们得到了错误:
Exception: name 'innerF' is not defined
是什么导致了这个错误?到目前为止,我们已经发现
from mylib import innerF
tomain.py
阻止错误发生在发生错误的机器上
我们正在用joblib 1.0.1
在Python 3.8
上运行这个
但是我们仍然不确定它发生的确切原因,并且担心如果发生这种情况,代码中可能会发生其他可怕的事情,因此我们想了解原因以及如何防止这种情况发生
目前没有回答
相关问题 更多 >
编程相关推荐