मैंने पांडस स्रोत डाउनलोड किया है और अब इसे डीबग करने का प्रयास कर रहा है। मैं 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
जब मैं अजगर-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]
क्या गलत है?
मैं वास्तव में यह बस के रूप में आसान जब cythong डिबगिंग सिर्फ प्रिंट बयान (पुराने स्कूल) में डालने के लिए लगता है, लेकिन बहुत जल्दी है। – Jeff
हाय @ जेफ, मुझे वास्तव में आपकी टिप्पणी बहुत दिलचस्प मिली। मैं न तो पांडो और न ही साइथन/पायथन उपयोगकर्ता हूं, लेकिन मैंने एसएएस में प्रोग्राम किया है। मेरे प्रोफेसरों ने हमें कभी डिबगर्स का उपयोग करने के लिए सिखाया नहीं है, हमें हमेशा संकलन करते समय हमारे कार्यक्रमों की जांच करने के लिए हर जगह प्रिंट स्टेटमेंट का उपयोग करने के लिए कहा जाता था। तो, आम तौर पर क्या आपको लगता है कि प्रिंट स्टेटमेंट डालने से डीबगर्स के रूप में उतना ही प्रभावी होता है, भले ही हम उन्हें अन्य प्रोग्रामिंग भाषाओं में उपयोग कर रहे हों? ऐसा लगता है कि पांडों में आर चीयर्स की तुलना में एक सतत वाक्यविन्यास है। सामान्य डीबगर्स में –
अच्छे हैं (जैसे पीडीबी)। मैं बस यह इंगित कर रहा था कि अपेक्षाकृत सरल कार्य और त्वरित संकलन-चक्र चक्र प्रिंट विवरण अक्सर – Jeff