因为需要新的Python版本,但是我们不希望修改系统原生的Python版本避免某些系统应用无法启动,因此自建一个干净的路径引入Python。

1.编译

以下在aarch64下测试,x64下可能有差异

  • 必须把相关的devel包安装完毕,否则python可能缺功能。
apt install libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev  libgdbm-compat-dev libdb-dev

如果是CentOS 8 系列,可以参考

yum install -y openssl-devel bzip2-devel libffi-devel readline-devel sqlite-devel xz-devel gdbm-devel libuuid-devel tk-devel zlib-devel ncurses-devel expat-devel libnsl2-devel
  • 编译本体

开启-g,保留符号信息,方便后续调试。同时使用O2,尽量避免速度损失。如果需要精确定位Python源码,可能需要开到O0。

以Python3.10为例:

./configure CFLAGS="-g -O2" --prefix=/app/python --enable-optimizations
make -j$(nproc)
make install

可选:可以将自编译的Python加入默认路径

echo 'export PATH=/app/python/bin:$PATH' > /etc/profile.d/custom_python.sh

2.gdb调试

  • 将源码目录下的Tools\gdb目录下的libpython.py拷贝到任意目录,比方说拷贝到/app/python/gdb目录,然后在gdb的初始化脚本中追加该路径。
vi ~/.gdbinit
python
import sys
sys.path.insert(0, "/app/python/gdb")
import libpython
end

然后就可以正常使用py-bt等功能了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/95362.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/95362.shtml
英文地址,请注明出处:http://en.pswp.cn/web/95362.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux - 进程切换

🎁个人主页:工藤新一 🔍系列专栏:C面向对象(类和对象篇) 🌟心中的天空之城,终会照亮我前方的路 🎉欢迎大家点赞👍评论📝收藏⭐文章 文章目录进…

机器算法(五)模型选择与调优

一 交叉验证1 保留交叉验证HoldOutholdOut Cross-validation(Train-Test Split)在这种交叉验证技术中,整个技术集被随机划分为训练集和验证集。根据经验法则,整个数据集的近70%被用作训练集,其余30%被用作验证集,也就是最常使用的…

Ubuntu 服务器实战:Docker 部署 Nextcloud+ZeroTier,打造可远程访问的个人云

本次部署基于 Ubuntu 系统(桌面版 / Server 版通用,核心操作一致),硬件配置参考如下,低配置主机可顺畅运行: ubuntu服务器配置如下 硬件类型具体型号/参数CPUIntel Core i3-6100T内存条8GB(DD…

移动硬盘删除东西后,没有释放空间

请按照以下步骤,从最简单、最常见的原因开始排查和解决:主要原因和解决方案1. 检查操作系统回收站 (最常见原因!)这是最容易被忽略的一点。当您直接在外接移动硬盘上删除文件时,文件并不会直接消失,而是被移到了该移动…

spring boot驴友结伴游网站的设计与实现(代码+数据库+LW)

摘要 本文介绍了基于Spring Boot框架开发的驴友结伴游网站的设计与实现。该网站旨在为旅行爱好者提供一个便捷的平台,使他们能够轻松地寻找伙伴、预定酒店、参与活动以及分享旅行经历。系统主要分为两大模块:用户模块和管理员模块。用户可以通过注册账号…

人机之间的强交互与弱交互

人机交互不是简单的人机,其本质是人机环境系统的交互。在这个系统中,人和机器不是孤立的存在,而是在特定环境下相互影响、相互作用的一部分。人机之间的强交互与弱交互可以从以下几个方面来理解:1、人机强交互通常是指人与机器之间…

OpenCV 基础知识总结

学习网站 https://zhuanlan.zhihu.com/p/483604320 命名空间 using namespace cv; Mat 作用 创建图像(矩阵) 格式 Mat image; //创建一个空图像image,大小为0 Mat image(100,100,CV_8U); //指定矩阵大小(矩阵行数/列数&#xff09…

C#基础(⑦user32.dll)

我们来详细学习如何使用 user32.dll,它是 Windows 系统中负责用户界面交互的核心 DLL,包含窗口管理、消息处理、键盘鼠标输入等功能。下面从基础到进阶,一步一步教你调用其中的常用函数。在 C# 中调用 user32.dll 需要使用 DllImport 特性&am…

Markdown格式.md文件的编辑预览使用

推荐工具Visual Studio Code (VS Code) - 强烈推荐特点:微软出品,免费、开源、跨平台(Windows, macOS, Linux)。拥有海量插件市场。编辑体验:安装 Markdown All in One 等插件后,可以获得语法高亮、实时预览…

TypeScript:unknown 类型

作为前端开发工程师,在 TypeScript 中使用 unknown 类型是提升类型安全的关键实践。下面我会结合实际开发场景详细讲解其特性和价值。unknown 核心特性1.类型安全的顶级类型与 any 类似,可接受任何类型的赋值:let userInput: unknown; userIn…

2025 批量下载hasmart所有知乎回答,文章和想法,导出txt,html和pdf

之前分享过文章2025 一键批量下载备份知乎回答/文章/想法/专栏/视频/收藏夹,导出txt,html和 pdf ,今天继续下载hasmart这个号的所有知乎回答 下载的知乎回答目录,包含发布时间和标题,点击可跳转对应回答。 2019年发布…

mapbox高阶,结合threejs(threebox)添加管道,实现管道流动效果

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言 1.1 ☘️mapboxgl.Map 地图对象 1.2 ☘️mapboxgl.Map style属性 1.3 ☘️threebox add加载网格对象 二、🍀…

语音识别后处理——如何语音断句加上标点、顺滑、ITN等

基本流程 基于cpu的计算: 前往intel官网下载libmkl相关的库:libmkl_core.a、libmkl_gf_lp64.a、libmkl_sequential.a # 静默安装 ./intel-onemkl-2025.2.0.629_offline.sh -a -s --eula accept默认安装目录:/opt/intel/oneapi libmkl相关的…

[吾爱出品] 图片转换王 v1.01 - 多格式支持 / 支持pds、Ai格式

[吾爱出品] 图片转换王 多格式支持 链接:https://pan.xunlei.com/s/VOZ81aeES9JDqlcvXPKYlxwqA1?pwdni9b# 图片转换王」是一款专为设计师、自媒体从业者及普通用户打造的专业图片格式转换工具,秉持绿色便携理念,无需繁琐安装步骤&#xf…

GitLab 18.3 正式发布,更新多项 DevOps、CI/CD 功能【一】

沿袭我们的月度发布传统,极狐GitLab 发布了 18.3 版本,该版本带来了通过直接转移进行迁移、CI/CD 作业令牌的细粒度权限控制、自定义管理员角色、Kubernetes 1.33 支持、通过 API 让流水线执行策略访问 CI/CD 配置等几十个重点功能的改进。下面是对部分重…

【macOS】垃圾箱中文件无法清理的--特殊方法

【macOS】垃圾箱中文件无法清理的特殊方法直接拖拽到 Beyond Compare App中,删除时,选择以下选项即可彻底删除。1.在macOS桌面,将垃圾箱打开2.将垃圾文件和文件夹,拖拽到Beyond Compare界面3.选中待删除的文件和文件夹如上图。4.鼠…

Python UV 管理如何使用镜像源安装 Python

uv python install [版本号] --mirrorhttps://github.com/astral-sh/python-build-standalone/releases/download/这是默认情况下 uv python 安装命令,命令会找到 astral 公司在 Github 上的存储库,然后进行下载。我们只需要为 mirror 增加任意 Github 镜…

SPI片选踩坑实录(硬件片选和软件片选)

SPI(Serial Peripheral Interface,串行外设接口)的片选信号(Chip Select,简称 CS 或 SS,即 Slave Select)是 SPI 通信中用于选择从设备的关键控制信号,其作用是在多从设备的 SPI 总线…

从理论到RTL,实战实现高可靠ECC校验(附完整开源代码/脚本)(3) RTL实现实战

第二部分:ECC (30, 24)RTL实现实战 - 精雕细琢的硬件卫士 理论是基石,实现是关键。本部分将 手把手构建参数化、可综合、高可靠的ECC编解码器 。本部分将以MIPI 协议中Packet Header 用到的ECC(30,24) 为例…

揭密设计模式:像搭乐高一样构建功能的装饰器模式

揭密设计模式:像搭乐高一样构建功能的装饰器模式 在软件开发中,我们常常会遇到一个问题:如何给一个对象动态地添加新功能,同时又不想修改它的代码?如果直接在原有类上修修补补,代码会变得臃肿复杂&#xff…