我试图跟踪python错误消息的来源,当我试图运行我的代码时,test.py
。在
我试图从错误输出跟踪的模块(由test.py
调用)显然是:
build/bdist.linux-x86_64/egg/george/gp.py
错误消息片段:
^{pr2}$build/bdist.linux-x86_64/
,但它是空的。也许这不是“对的”。在gp.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
所以很明显,在这一行的某一点上,我将一个包含inf或nan的数组输入到它不喜欢的scipy或numpy代码中。但是要想知道为什么这些值首先是infs或nan,那么predict
模块中似乎出了什么问题。在
(gp1是一个在gp.py
代码中定义的类!)在
您可以通过使用模块上的
.__file__
属性或调用inspect.getfile()
来查看实际加载的文件。在您的示例没有提到,但是您可能在您的}。你可以试试:
test.py
中导入gp
或{这两行代码都应该显示从Python的角度实际加载了什么文件,并允许您跟踪有问题的文件。在
在将源文件路径编译为Python字节码时,Python将源文件路径存储在模块的字节编译版本中。这些字节编译的版本通常“动态”生成并自动重复使用。在
您的程序无意中在树中的某个地方使用了一个
gp.pyc
文件,该文件是从您看到的build/...
路径中的gp.py
编译的。通常,build/
只在构建包时使用。我怀疑你在建造george
蛋的时候把事情搞砸了。在检查Python路径中的
.pyc
文件并删除它们。它们将被自动重建(假设找到了真正的.py
文件)。在例如,从项目目录:
相关问题 更多 >
编程相关推荐