当前位置: 首页 > news >正文

记一次编译 debug 版本的 python 3.12.11 的过程

0. 系统环境

        docker image: nvidia/cuda:12.6.3-devel-ubuntu22.04

        gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0

        python branch: v3.12.11

1. 容器中配置环境

        创建启动容器:

sudo docker run --gpus all -it \
--name py_debug_03 \
-v /home/hanmeimei/ex_cudaq_py/tmp03:/root/tmp03 \
-v /home/hanmeimei/.ssh:/root/.ssh \
nvidia/cuda:12.6.3-devel-ubuntu22.04

        安装依赖:

# apt update
# apt install zlib1g-dev libncurses5-dev \
libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev \
libreadline-dev libffi-dev libbz2-dev liblzma-dev# apt-get install -y libexpat1-dev
# apt install pkg-config

        源码安装 mpdecimal:

$ wget https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz
$ tar -xzf mpdecimal-2.5.1.tar.gz
$ cd mpdecimal-2.5.1### 配置、编译和安装
$ ./configure --prefix=/usr/local
$ make -j$(nproc)
# make install

2. 下载配置编译安装 python (debug)

         下载 cpython:

git clone https://github.com/python/cpython.git
cd cpython/
git checkout v3.12.11

        配置编译:

./configure --enable-shared --enable-ipv6 --with-ensurepip=install --with-system-expat --with-system-ffi --with-system-libmpdec --enable-loadable-sqlite-extensions --with-dbmliborder=bdb:gdbm --with-computed-gotos --without-ensurepip  --with-address-sanitizer --prefix=/usr --with-pydebug

        debug版本,主要是其中的选项: --with-pydebug

$ make -j
# make install

3. 尝试调试

        启动调试:

$ gdb python3
(gdb) set args ./hello.py
(gdb) start

        这样会进入 python 解释器的 main() 函数,可以开始调试。

        效果上这样:

        如果想要debug 自己编写的 python 包的 cpp 扩展代码的话,可以从这里开始着手。

http://www.dtcms.com/a/423351.html

相关文章:

  • 需要上传视频的网站什么是html5网站
  • 深入Spring Boot的核心——配置管理(指南四)
  • 打工人日报#20250929
  • 论 AI Database
  • 免费建设网站公司哪家好如何做公司培训网站
  • 美工网站设计网站网页转小程序教程
  • 【JVM】基础篇(一)
  • 【关于虚拟机执行ip addr 命令不显示ip地址问题】
  • SpringBoot快速生成二维码
  • 张家港做网站费用gta5办公室网站正在建设
  • c#网站开发框架有没有免费的推广平台
  • XCVU13P-2FLGA2577I Xilinx AMD VirtexUltraScale+ FPGA
  • K8s优先级调度实战:创建高优先级类
  • 爱站网关键词长尾挖掘工具pc端网站转手机站怎么做
  • 微信小程序的获取当前位置--步骤
  • Mac OS远程执行Shell命令技巧
  • 传媒公司网站设计方案班级网站建设的参考文献
  • 使用python技术获取淘宝商品信息应注意规避哪些风险?
  • 早晨网站建设两当网站建设
  • 网站建设定制开发推广网站一年域名费用多少钱
  • 与主机安全息息相关的EDR
  • Next.js项目演示(从零创建Next.js项目)Next.js入门实战
  • 将x减到0的最小操作数
  • wordpress小说站群齐鲁人才网泰安
  • 主机安全(核心目标、关键领域和最佳实践)
  • 在线生成固定悬浮导航的工具网站wordpress主题 搜索引擎
  • 【Linux系统】—— 环境变量
  • cors跨域问题解决
  • 【网络安全】四、中级篇:SQL注入详解
  • Ceph 分布式存储学习笔记(二):池管理、认证和授权管理与集群配置(下)