Python 调试手段
基础环境
安装pip
# python 2.7
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py --no-check-certificate
# python 3.8
wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate
# 运行安装脚本,如果有代理直接可以
/bin/python get-pip.py
# 没有代理,则需要手动下载三个文件到root目录
# pip-20.3.4-py2.py3-none-any.whl
# setuptools-44.1.1-py2.py3-none-any.whl
# wheel-0.37.1-py2.py3-none-any.whl
/bin/python get-pip.py --no-index --find-links=/root
# 验证pip安装
/bin/python -m pip --version
参考链接
pip、whl包下载https://pypi.org/
https://github.com/pypa/get-pip
https://github.com/benfred/py-spy/releases
https://www.reddit.com/r/learnpython/comments/s98n25/how_to_use_pip_on_python_27_windows/
python 运行中调试手段
查看运行中的python堆栈信息
方法1 py-spy
py-spy
是一个用于分析 Python 程序的采样分析器,可以在不修改目标进程的情况下,查看其 Python 堆栈信息。
安装 py-spy
:
# 前置条件需要有 pip
pip install py-spy
/bin/python -m pip install py_spy-0.3.14-py2.py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
使用方法:
-
查看当前堆栈:
py-spy dump -p <pid>
这将显示进程
<pid>
的所有线程的当前 Python 堆栈信息。 -
实时查看堆栈(类似于 top 命令):
py-spy top -p <pid>
这会实时更新并显示最消耗 CPU 的函数和对应的堆栈。
优点:
- 无需修改或重启目标进程。
- 对性能影响较小。
- 支持 Python 2.7 及以上版本。