PyCharm की जाँच करें । मैं वर्षों से एक खुश भुगतान करने वाला ग्राहक रहा हूं, हालांकि एक मुफ्त सामुदायिक संस्करण भी उपलब्ध है।
एक फाइल वॉचर प्लगइन है जो रिमोट मशीन (आरपीआई) पर फाइलों की नकल करेगा। और यह दूरस्थ डिबगिंग प्रदर्शन करने की क्षमता रखता है ।
डिबगिंग मॉड्यूल को तार करें
PyCharm दूरस्थ डिबगिंग की स्थापना के संबंध में, पहली बात यह है कि तार ऊपर है pycharm-debug.egg
। मैं एक मैक पर हूँ और मेरे मामले में फ़ाइल पर है /Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg
। मैंने इसे अपने आरपीआई को कमांड के साथ कॉपी किया:
scp /Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg pi@mediapi:
यह फ़ाइल पायथन के रास्ते में कहीं होनी चाहिए ताकि उसे ढूंढा जा सके। मैंने निम्नलिखित को चलाकर एक उपयुक्त स्थान की तलाश की:
pi@mediapi ~ $ python -c 'import sys; print sys.path'
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7']
उस सूची से मेरा मानना /usr/local/lib/python2.7/dist-packages/
है कि सबसे उपयुक्त (क्योंकि यह है /usr/local
), इसलिए:
sudo mv pycharm-debug.egg /usr/local/lib/python2.7/dist-packages/
और हमें .pth
इसे पथ में इंजेक्ट करने के लिए एक फ़ाइल की आवश्यकता है :
pi@mediapi ~ $ echo /usr/local/lib/python2.7/dist-packages/pycharm-debug.egg | sudo tee -a /usr/local/lib/python2.7/dist-packages/pycharm-debug.pth
अंतिम, सेटअप सत्यापित करें:
pi@mediapi ~ $ python -c 'import pydevd; print pydevd'
<module 'pydevd' from '/usr/local/lib/python2.7/dist-packages/pycharm-debug.egg/pydevd.py'>
कूल, डिबगिंग मॉड्यूल एक स्क्रिप्ट को डीबग करने पर वायर्ड हैं। मैं इस पोस्ट के लिए लिखी गई श्रोता स्क्रिप्ट को डीबग करने जा रहा हूं ।
PyCharm सेटअप
PyCharm में, करने के लिए जाओ Run -> Edit Configurations...
+
ऊपर बाईं ओर दिए गए साइन को हिट करें और चुनें Python Remote Debug
। बस इसे एक नाम दें, remote debug
और आप यहां काम कर रहे हैं; ठीक है
अब पर क्लिक करें Run -> Debug 'remote debug'
और आपको डिबग कंसोल में एक संदेश दिखाई देगा,Use the following code to connect to the debugger
लाइनों को कॉपी करें, मेरे मामले में वे इस तरह देख रहे थे:
import pydevd
pydevd.settrace('localhost', port=56112, stdoutToServer=True, stderrToServer=True)
उन्हें उस फ़ाइल के शीर्ष पर पेस्ट करें जिसे आप डिबग कर रहे हैं और फ़ाइल को सहेजें।
फ़ाइल सिंक प्लगइन का उपयोग किए बिना मैं rsync का उपयोग करके फ़ाइलों की प्रतिलिपि बनाता हूं:
[berto@g6]$ rsync -av ./ pi@mediapi:broadcast/
अब, कॉन्फ़िगरेशन का कहना है कि नोटिस localhost
। डिबगर को वायर करने के बारे में जाने का सबसे अच्छा तरीका एसएसएच की पोर्ट फ़ॉरवर्डिंग क्षमताओं का उपयोग करना है ताकि आरपीआई आपके डेस्क पर या दुनिया भर में हो सके और यह उसी तरह से काम करता है। दूरस्थ बंदरगाह को स्थानीय पोर्ट से जोड़ने के लिए इस कमांड का उपयोग करके आरपीआई में SSH:
[berto@g6]$ ssh -R 56112:localhost:56112 pi@mediapi
PyCharm आपको एक संदेश दिखाना चाहिए Waiting for process connection...
आरपीआई पर, प्रोग्राम को चलाएं और आप डिबगर किक को देखेंगे। डिफ़ॉल्ट रूप से यह pydevd लाइन के ठीक बाद की लाइन पर रुकता है, जिसे आप अपनी इच्छानुसार यदि आप कॉन्फ़िगर कर सकते हैं।
और उस बिंदु पर आप दूरस्थ रूप से डिबगिंग कर रहे हैं! :)