我试图跟踪我尝试运行我的代码时得到的python错误消息的来源test.py
.
test.py
我试图从错误输出中跟踪的模块(由其调用)显然是:
build/bdist.linux-x86_64/egg/george/gp.py
Run Code Online (Sandbox Code Playgroud)
错误消息片段:
File "build/bdist.linux-x86_64/egg/george/gp.py", line 498, in
predict
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
很明显,在某些方面,我正在将一个包含infs或NaN的数组输入到一些它不喜欢的scipy或numpy代码中.但是为了看看为什么这些值首先是infs或NaNs,似乎predict
模块中发生的任何问题都发生了.
(gp1是一个也在gp.py
代码中定义的类!)
将模块编译为 Python 字节代码时,Python 将模块的字节编译版本存储源文件路径。这些字节编译版本通常会即时生成 \xe2\x80\x9c 并自动重新使用。
\n\n您的程序无意中使用了gp.pyc
树中某处的文件,该文件是从您看到的gp.py
路径中编译的build/...
。通常,build/
仅在构建包时使用。我怀疑你在建造鸡蛋时不知何故把事情搞砸了george
。
检查.pyc
Python 路径中的文件并删除它们。它们\xe2\x80\x98将自动重建(假设.py
找到了真实的文件)。
例如,从您的项目目录:
\n\n$ find . -name `*.pyc` -exec rm {} \\;\n
Run Code Online (Sandbox Code Playgroud)\n