我已经下载了Pandas源代码,现在正在尝试调试它。 我修改了Makefile:
sparse: pandas/src/sparse.pyx
python-dbg setup.py build_ext --inplace --pyrex-gdb
build: clean_pyc
python-dbg setup.py build_ext --inplace --pyrex-gdb
develop: build
-python-dbg setup.py develop --pyrex-gdb
我也有一个非常简单的脚本:
from numpy import asarray
from pandas import algos
v = [4171.0, 0.0]
expAverage = algos.ewma(asarray(v), 50, 1)
print expAverage
当我尝试使用python-dbg test1.py运行它时,这就是我得到的:
/tmp/1/pandas/pandas/hashtable.so: undefined symbol: Py_InitModule4_64
Traceback (most recent call last):
File "test1.py", line 2, in <module>
from pandas import algos
File "/tmp/1/pandas/pandas/__init__.py", line 6, in <module>
from . import hashtable, tslib, lib
ImportError: /tmp/1/pandas/pandas/hashtable.so: undefined symbol: Py_InitModule4_64
[94423 refs]
有什么问题?
答案 0 :(得分:1)
python-dbg
可以使用的方式使用调试信息进行编译。此解释详情如下:
http://hustoknow.blogspot.co.uk/2013/06/why-your-python-program-cant-start-when.html
对我而言,似乎--with-pydebug
标志不等同/触发与--pyrex-gdb
相同的操作。顺便说一句,--pyrex-gdb
似乎已重命名为--cython-gdb
。
cygdb
或cython --gdb
吗?据报道,您所使用的旗帜不起作用:https://groups.google.com/forum/#!topic/cython-users/K6sjhzUX5JA