pycharm remote debug
1. Edit Configurations >> click "+" button and select "Python Remote Debug" >> set debug server name, debug server ip(that remote server can access it) and port that debug server runs on.
2. Copy pycharm-debug.egg to python path(like windows ..../python2.7/lib/site-packages, or linux ..../python2.7/dist-packages), and then extract it egg file(linux uses unzip pycharm-debug.egg, windows can uses software like 7zip or winzip).
3. create a decorator as below.
def require_remote_debug(func): def __require_remote_debug(*args, **kwargs): import sys #sys.path.append('D:\\Python27\\Lib\\site-packages\\pycharm-debug.egg') from pydev import pydevd reload(sys) pydevd.settrace('10.197.60.137', port=9999, stdoutToServer=True, stderrToServer=True) # 10.197.60.137 is the debug server ip
return func(*args, **kwargs)
return __require_remote_debug
or
def require_remote_debug(debug_server_ip='10.197.60.137', debug_server_port=5678, enabled=False): '''to use this decorator, we need to do as the following steps: 1. copy eclipse/plugins/org.python.pydev_x.x.x/pysrc to python path(like ..../python2.7/lib/dist-packages/ in linux, or ..../python2.7/lib/site-packages/) 2. add an empty file named '__init__.py' to directory(....dist-package/pysrc or ....site-packages/pysrc), in order to make pysrc as a python package 3. edit the file pydevd_file_utils.py in directory(....dist-package/pysrc or ....site-packages/pysrc), try to mapping the app source code from remote server to debug server. e.g. PATHS_FROM_ECLIPSE_TO_PYTHON = [ (normcase(r'D:\eclipse4.2\work_space\abc'), normcase(r'/home/mijiang/workspace/abc'))] ''' def _require_pydev_remote_debug(func): def __require_pydev_remote_debug(*args, **kwargs): if enabled: import sys from pysrc import pydevd reload(sys) pydevd.settrace(debug_server_ip, port=debug_server_port, stdoutToServer=True, stderrToServer=True) return func(*args, **kwargs) return __require_pydev_remote_debug return _require_pydev_remote_debug
4. add decorator for the test method.
@require_remote_debug def test(): pass
5. start the debug server(select Remote Debug from dropdownlist "Select Run/Debug Configurations") in pycharm.
6. trigger the method "test" call on the remote server.
浙公网安备 33010602011771号