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

Python 源码编译安装详解:跨平台指南及完整步骤解析

Python 源码编译安装详解:跨平台指南及完整步骤解析

文章目录

  • Python 源码编译安装详解:跨平台指南及完整步骤解析
      • 一 准备工作
        • 1)Ubuntu/Debian
        • 2)CentOS/RHEL
        • 3)macOS
      • 二 下载 Python 源码
      • 三 编译与安装
        • 1)解压源码
        • 2)配置安装选项
        • 3)编译源码
        • 4)安装
      • 四 验证安装

本文详细介绍了如何在不同操作系统(Ubuntu/Debian、CentOS/RHEL、macOS)上,从源码编译并安装 Python 的完整过程。首先,文章提供了各平台上所需的依赖工具和库的安装步骤。然后,讲解了如何下载 Python 官方源码包,解压后进行配置和编译,并使用 altinstall 避免覆盖系统默认的 Python 版本。最后,文章通过版本验证确保安装成功。此指南适合需要在多平台环境下定制安装 Python 的开发者和系统管理员参考与实践。

一 准备工作

安装编译 Python 源码所需的依赖工具和库。这通常包括 gcc 编译器、make 工具以及开发库等。

1)Ubuntu/Debian
sudo apt-get update
sudo apt-get install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget
2)CentOS/RHEL
sudo yum groupinstall "Development Tools"
sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
3)macOS
brew install openssl readline sqlite3 xz zlib

二 下载 Python 源码

从 Python 官方网站或 Python 的 GitHub 仓库下载最新的源码压缩包。

wget https://www.python.org/ftp/python/3.12.7/Python-3.12.7.tgz

三 编译与安装

1)解压源码
tar -xvzf Python-3.12.7.tgz
2)配置安装选项

进入解压后的目录,并配置安装选项。prefix 参数指定安装位置:

cd Python-3.12.7
./configure --prefix=/usr/local/opt/python-3.12.7
3)编译源码
make
4)安装

安装编译好的 Python。使用 sudo 可能需要管理员权限:

sudo make altinstall

使用 altinstall 而不是 install 是为了避免替换系统默认的 Python 版本。

四 验证安装

检查 Python 版本,确保安装成功:

/usr/local/opt/python-3.12.7/bin/python3.12 --version

相关文章:

Python 源码编译安装详解:跨平台指南及完整步骤解析

Python 源码编译安装详解:跨平台指南及完整步骤解析 文章目录 Python 源码编译安装详解:跨平台指南及完整步骤解析一 准备工作1)Ubuntu/Debian2)CentOS/RHEL3)macOS 二 下载 Python 源码三 编译与安装1)解压…...

MQTT vs HTTP:谁更适合物联网?

前言 随着物联网(IoT)技术的飞速发展中,其应用规模和使用场景正在持续扩大,但它关键的流程仍然是围绕数据传输来进行的,因此设备通信协议选择至关重要。 作为两种主要的通信协议,MQTT 协议和 HTTP 协议各…...

小北的技术博客:探索华为昇腾CANN训练营与AI技术创新——Ascend C算子开发能力认证考试(初级)

前言 哈喽哈喽友友们,这里是zyll~(小北)智慧龙阁的创始人及核心技术开发者。在技术的广阔天地里,我专注于大数据与全栈开发,并致力于成为这一领域的新锐力量。通过智慧龙阁这个平台,我期望能与大家分享我的技术心得,共同探索技术的无限可能。 Ascend C编程:小北的技术…...

鸿蒙next开发者第一课02.DevEcoStudio的使用-习题

【习题】DevEco Studio的使用 通过/及格分80/ 满分100 判断题 1. 如果代码中涉及到一些网络、数据库、传感器等功能的开发,均可使用预览器进行预览。F 正确(True)错误(False) 预览器不能进行传感器等特殊功能的开发,需要使用真机开发 2. module.json5文件中的…...

【vue】监听table水平滚动条切换tab后还原位置

有个需求就是切换tab后,原先的table水平滚动条要还原位置(如下图),先说下思路,大致就是 切出页面时 把滚动距离保存到Storage 中,切回来时在恢复 直接上代码 首先table ref指定一下ref"jtable" …...

C#使用PdfSharp生成PDF文件实例详解

许多项目开发中需要生成PDF, 常规办法使用官方提供的Microsoft.Office.Interop.Worddll插件,但是这种方法需要完全安装OFFICE,另外版本不一致还会出现很多错误。一般不推荐使用。 下面介绍几种巧妙的用法,定能事半功倍。 本文使用PDFsharp完成功能。 PDFsharp一款开源的…...

【软件系统架构设计师-案例-1】架构风格

1. 请用200字以内说明系统可靠性的定义及包含的4个子特性,并简要指出提高系统可靠性一般采用哪些技术? (1)可靠性定义:系统在规定的时间或环境条件下,完成规定功能的能力,就是系统无故障运行的…...

神经网络整体架构

文章目录 1.输入层Input2.卷积层Conv3.激活函数层(一)Sigmoid 函数(二)Tanh 函数(三)修正线性单元ReLU(四)Leaky ReLU函数(带泄露的Relu)(五)参数化ReLU 4.池化层POOL5.全连接层FC6.输出层Output 用全连接神经网络处理大尺寸图像具有三个明显的缺点: ①将图像展开为…...

山西农业大学20241010

02-JAVASCRIPT 一.JS基础语法1. 数据类型转换1.1 隐式转换1.2 强制转换 2. 运算符 二.JS语句1. 条件语句2. 循环语句 三.函数(方法)1. 声明函数的第一种方法2. 声明函数的第二种方法3. 声明函数的第三种方法 四.对象1. 对象的创建 -- 字面量2. 访问对象的属性3. 内置构造函数以…...

小北的技术博客:探索华为昇腾CANN训练营与AI技术创新——Ascend C算子开发能力认证考试(中级)

前言 哈喽哈喽,这里是zyll~,北浊.(大家可以亲切的呼唤我叫小北)智慧龙阁的创始人,一个在大数据和全站领域不断深耕的技术创作者。今天,我想和大家分享一些关于华为昇腾CANN训练营以及AI技术创新的最新资讯和实践经验~(初级证书还没拿到的小伙伴,可以先参考小北的这篇技术…...

Docker极速入门一文通

文章目录 Docker极速入门一文通Docker命令搜索镜像docker search拉取镜像|下载镜像docker pull查看镜像docker images删除镜像docker rmi运行容器docker run查看容器 docker ps删除容器 docker rm后台启动容器 docker run -d进入容器 docker exec拷贝文件到容器 docker cp拷贝容…...

Unity网络开发基础 —— 实践小项目

概述 接Unity网络开发基础 导入基础知识中的代码 需求分析 手动写Handler类 手动书写消息池 using GamePlayer; using System; using System.Collections; using System.Collections.Generic; using UnityEngine;/// <summary> /// 消息池中 主要是用于 注册 ID和消息类…...

四、Spring Boot集成Spring Security之认证流程

Spring Boot集成Spring Security之认证流程 一、概要说明二、基于内存的用户名密码1、默认用户名密码2、自定义用户名密码3、为方便测试添加测试接口TestController 三、登录登出重要概念介绍四、登录业务逻辑1、登录业务相关过滤器2、访问业务请求处理流程①、访问业务请求地址…...

Chromium 中chrome.bookmarks扩展接口c++实现

一、扩展接口定义 chrome.bookmarks 使用 chrome.bookmarks API 创建、整理以及以其他方式操纵书签。另请参阅覆盖网页&#xff08;可用于创建自定义“书签管理器”页面&#xff09;。 更多参考chrome.bookmarks | API | Chrome for Developers (google.cn) 扩展可以请从…...

编程思想:编程范式:响应式编程

文章目录 概述实现的设计模式举例总结概述 响应 响应一般指对于事件的响应,事件包括数据变化或其他事件 响应流程包括事件的发生,事件的传递,和事件的最终处理 事件在起点处发生,开始传递过程 传递过程,包括对事件的一系列处理,如事件封装的数据的类型转化,数据集合…...

Leetcode 颜色分类

这个算法采用了荷兰国旗问题&#xff08;Dutch National Flag Problem&#xff09;的解法思想&#xff0c;用三个指针将数组中的元素分为三个区域&#xff0c;并且对这些区域进行动态调整&#xff0c;达到排序的目的。 算法思想&#xff1a; 三个指针&#xff1a; low 指针表示…...

ssh连接阿里云长连接

如何让ssh保持连接&#xff1f; 有时候用ssh连接阿里云莫名奇妙断开了。怎么样才能保持连接呢&#xff1f; 修改系统的链接参数: &#xff08;1&#xff09;修改/etc/ssh/sshd_config文件&#xff0c;找到 ClientAliveInterval 0和ClientAliveCountMax 3并将注释符号&#x…...

栈的C实现

栈的C实现 栈简介栈的C实现1.栈结构体2.初始化栈3.栈的基本操作 栈简介 栈&#xff08;Stack&#xff09;是一种后进先出的数据结构&#xff0c;类似于一个垂直的容器。 栈的特点是后进先出&#xff0c;即最后入栈的元素最先出栈。栈可以用来解决递归问题、实现函数调用、以及…...

【MySQL】入门篇—数据库基础:关系数据库概念

一、背景与重要性 在当今数字化时代&#xff0c;数据的管理和存储变得尤为重要。无论是企业的客户信息、产品数据&#xff0c;还是社交媒体上的用户互动&#xff0c;数据都是推动业务和决策的核心。 关系数据库管理系统&#xff08;RDBMS&#xff09;是一种广泛使用的数据管理…...

不到千元的自动猫砂盆是智商税吗?这四大选购技巧不看就亏大了

虽然现在的人都说&#xff0c;猫砂盆等上班一天回来再清理也没有任何关系&#xff0c;但实际上在这一天里&#xff0c;猫咪的粪便已经在猫砂盆里滋生了很多无法察觉的细菌&#xff0c;久而久之就会影响猫咪的健康&#xff0c;导致尿闭&#xff0c;放了一天的便便臭味也让人无法…...

终极指南:Windows平台APK安装器如何让安卓应用无缝运行

终极指南&#xff1a;Windows平台APK安装器如何让安卓应用无缝运行 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在Windows电脑上运行安卓应用曾经是一个技术难题&am…...

Agent OS:AI智能体开发的操作系统级解决方案

1. 项目概述&#xff1a;一个为AI智能体而生的操作系统最近在AI智能体开发圈子里&#xff0c;一个名为“Agent OS”的项目热度持续攀升。它来自Rivet.dev团队&#xff0c;定位非常清晰&#xff1a;一个专为构建、运行和管理AI智能体而设计的操作系统。如果你正在尝试将大语言模…...

【人生底稿 28】新疆出差终章:几番波折终汇报,尽兴踏归津门路

三日游玩尽数落幕&#xff0c;忙碌工作正式回归。轻松的闲暇时光悄然收尾&#xff0c;紧绷的工作状态再次上线。整趟新疆之行&#xff0c;在起伏辗转中迎来最终收尾。一、深夜复盘材料&#xff0c;彻夜待汇报游玩结束回到酒店&#xff0c;我没有松懈休息&#xff0c;静下心重新…...

DriveBench:面向真实驾驶场景的长序列多智能体交互基准测试框架

1. 项目概述&#xff1a;从“世界基准”到“驾驶基准”的演进如果你在自动驾驶或者计算机视觉领域摸爬滚打过几年&#xff0c;一定对“基准测试”&#xff08;Benchmark&#xff09;这个词又爱又恨。爱的是&#xff0c;它提供了一个相对公平的擂台&#xff0c;让不同算法、不同…...

Mantic.sh:Bash脚本实现的终端命令自动化与效率提升工具

1. 项目概述&#xff1a;一个为开发者打造的终端效率工具如果你和我一样&#xff0c;每天有超过一半的工作时间是在终端&#xff08;Terminal&#xff09;里度过的&#xff0c;那你肯定对效率工具有着近乎偏执的追求。从cd到ls&#xff0c;从grep到awk&#xff0c;我们依赖这些…...

Scarab空洞骑士模组管理器:2024年最完整的安装与使用指南

Scarab空洞骑士模组管理器&#xff1a;2024年最完整的安装与使用指南 【免费下载链接】Scarab An installer for Hollow Knight mods written with Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 还在为空洞骑士模组安装的复杂流程而烦恼吗&#xff1f…...

Python数据聚合抓取工具:从配置化引擎到实战避坑指南

1. 项目概述&#xff1a;一个多功能的“聚合爪”工具最近在GitHub上闲逛&#xff0c;发现了一个名字挺有意思的项目&#xff1a;al1enjesus/polyclawster。这个名字拆开看&#xff0c;“poly”代表多&#xff0c;“clawster”听起来像是“claw”&#xff08;爪子&#xff09;和…...

详解C++作用域与生命周期

Pascal之父Nicklaus Wirth曾经提出一个公式&#xff0c;展示出了程序的本质&#xff1a;程序算法数据结构。后人又给出一个公式与之遥相呼应&#xff1a;软件程序文档。这两个公式可以简洁明了的为我们展示程序和软件的组成。程序的运行过程可以理解为算法对数据的加工过程&…...

开源PCB自动布线神器FreeRouting:5分钟上手,效率提升300%

开源PCB自动布线神器FreeRouting&#xff1a;5分钟上手&#xff0c;效率提升300% 【免费下载链接】freerouting Advanced PCB auto-router 项目地址: https://gitcode.com/gh_mirrors/fr/freerouting FreeRouting是一款功能强大的开源PCB自动布线工具&#xff0c;它能帮…...

DeepLake:AI原生数据湖统一管理多模态数据与向量嵌入

1. 项目概述&#xff1a;当数据湖遇上AI向量化如果你正在构建一个AI应用&#xff0c;无论是RAG检索增强生成系统、多模态模型训练&#xff0c;还是复杂的语义搜索&#xff0c;数据管理环节的复杂性往往会让你头疼不已。传统的文件系统、数据库&#xff0c;甚至是对象存储&#…...