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

使用方法:

  1. 查看当前堆栈:

    py-spy dump -p <pid>

    这将显示进程 <pid>​ 的所有线程的当前 Python 堆栈信息。

  2. 实时查看堆栈(类似于 top 命令):

    py-spy top -p <pid>

    这会实时更新并显示最消耗 CPU 的函数和对应的堆栈。

优点:

  • 无需修改或重启目标进程。
  • 对性能影响较小。
  • 支持 Python 2.7 及以上版本。