当我尝试运行我的代码test.py
时,我试图跟踪一条python错误消息的来源。
我试图从错误输出中跟踪的模块(由test.py
调用)显然是:
build/bdist.linux-x86_64/egg/george/gp.py
错误消息摘要:
File "build/bdist.linux-x86_64/egg/george/gp.py", line 498, in
predict
build/bdist.linux-x86_64/
,但是它是空的。也许这不是“正确的选择”。gp.py
的另一个版本,但是当我对其进行更改时,什么也没有发生,因此test.py
并未调用该版本。我要做的就是找到发生错误的代码,以便我可以向其中添加更多输出以找出问题所在。
这是错误消息:
Traceback (most recent call last):
File "test.py", line 213, in <module>
mumc, dummy = gp1.predict(residuals, dates, kernel = kernelprime )
File "build/bdist.linux-x86_64/egg/george/gp.py", line 511, in predict
File "build/bdist.linux-x86_64/egg/george/solvers/basic.py", line 87, in apply_inverse
File "/home/me/.local/lib/python2.7/site-packages/scipy/linalg/decomp_cholesky.py", line 174, in cho_solve
b1 = asarray_chkfinite(b)
File "/home/me/.local/lib/python2.7/site-packages/numpy/lib/function_base.py", line 1219, in asarray_chkfinite
"array must not contain infs or NaNs")
ValueError: array must not contain infs or NaNs
因此,很明显,在一行的某个时刻,我正在将包含infs或NaN的数组馈入它不喜欢的scipy或numpy代码中。但是首先要弄清为什么值是infs或NaN,看来predict
模块中正在发生任何问题。
(gp1是也在gp.py
代码中定义的类!)
答案 0 :(得分:4)
Python将源文件路径编译为Python字节代码时,会将其存储在模块的字节编译版本中。这些字节编译的版本通常是“即时”生成的,并会自动重复使用。
您的程序无意间在树中某处使用了gp.pyc
文件,该文件是从您看到的gp.py
路径中的build/...
编译而来的。通常,build/
仅在构建软件包时使用。我怀疑您在构建george
鸡蛋时以某种方式弄乱了事情。
在您的Python路径中检查.pyc
个文件并将其删除。它们会自动重建(如果找到了真实的.py
文件)。
例如在您的项目目录中:
$ find . -name `*.pyc` -exec rm {} \;
答案 1 :(得分:1)
您可以通过使用模块上的deleteEmployee(){
const id = this.contentDeleteId;
this.firestore.doc('employees/' + id).delete();
this.toastr.warning('Deleted successfully','Employee Register');
}
属性或调用.__file__
来查看实际加载的文件。
您的示例未提及,但是您很可能在inspect.getfile()
中导入gp
或gp1
。您可以尝试:
test.py
从Python的角度来看,这两行都应显示实际加载了什么文件,并且应该允许您查找问题所在的文件。