Python源码分析1 - Building Python

Python环境配置:解决ModuleNotFoundError的完整指南 Python模块导入错误ModuleNotFoundError是开发中常见问题,通常由环境配置不当引发。Python的模块加载机制会按照sys.path定义的路径顺序查找模块,当所需模块不在这些路径中时就会报错。理解这一原理对解决依赖管理问题至关重要,特别是在使用虚拟环境或多Python版本时。通过检查pip版本、验证环境变量、重建虚拟环境等方法,可以系统性地解决这类问题。本文以tqdm进度条库为例,详细演示了从基础检查到高级调试的全套解决方案,涵盖Windows/Linux/macOS多平台场景,并提供了 阅读详情

Python是一种动态的脚本语言。具体的我就不多介绍了,可以参考www.python.org. Python是Open Source的,在www.python.org可以下载到最新的2.5版的源代码。源代码链接在这里:Python 2.5

下载下来之后直接解压缩可以看到如下的目录结构:

DemoDemo用的代码,主要用来展示Python的一些应用
DocPython的UserManual。Latex格式的
Grammar语法文件。这个语法文件会在Python运行的时候被用来分析Python源代码
IncludePython Include用的头文件
LibPython的库文件
MacFor Mac
Misc如字面意思,一些不适合放在其他地方的文件就放在这里了
ModulesPython的一些Built-in Module的实现
ObjectsPython的基本内部对象的实现,比如class/list等等
ParserPython的词法分析和语法分析
PC比较老的Windows和OS2的Port的项目以及Port用到的一些公用文件放在这里,PCBuild和PCBuild8都要用到这个目录的内容
PCBuildPython用于VS 2003的Project文件
PCbuild8Python用于VS 2005的Project文件
PythonPython主程序代码
RISCOSPython的RISC OS Port
ToolsBuild和Extend Python所需的工具

在Unix/Linux/Cywin下面可以直接键入:

./configure
make install

Windows用VC Build的话,可以直接打开PCBuild/PCBuild8下面相应的Solution来Build。直接Build的话会出不少错误,有必要做一些调整:

  1. 不是所有的Project都可以立刻Build,部分Project由于对第三方库有依赖,一般情况下可以直接跳过Build这些Project,而只Build核心的Python代码。在Configuration Manager里面直接Exclude就可以。必需的Project是:make_buildinfo, make_versioninfo, python, pythoncore
  2. PythoncoreProject少了一个文件,需要手动把Modules/_typesmodule.c加入到工程中去,再Build

今天就写到这里,下一篇我会通过跟踪执行一个最简单的Python代码来介绍Python执行的流程。  

 

作者:      ATField
E-Mail:   atfield_zhang@hotmail.com
Blog:     
http://blog.youkuaiyun.com/atfield

Ubuntu 20.04 安装 TensorFlow 2.15 的正确实践 TensorFlow 是主流深度学习框架,其安装本质是 Python 包依赖管理与系统环境协同的问题。在 Ubuntu 20.04 这类 LTS 发行版中,核心挑战在于系统 python3.8 与 pip 的默认缺失、apt 与 pip 的包管理冲突、以及 virtualenv 环境隔离失效等底层机制问题。理解 Python 解释器复用原则、wheel 包的 manylinux ABI 兼容性(如 cp38 + manylinux_2_17)、以及清华镜像源的 pip.conf 配置优先级,是实现稳定部署的 阅读详情

相关推荐

Python全面解析——源码实战解析

本篇文章将从Python语言的基础入手,逐步引入Python中的高级特性,并通过源码实例进行详细讲解。比如字符串、字典、列表等常见数据结构的基本使用方法,以及常用的流程控制语句,如if-else、while、for循环等。除此之外,Python中的模块也是非常重要的一部分,在Python中,一个.py文件就可以作为一个模块,里面可以存放多个函数和变量。本文介绍了Python语言的基础知识、函数和模块的使用方法、Python的高级特性以及Python在不同领域的应用。这些特性可以大大提升程序的效率和可读性。

WangWEel的博客 390

Python源码剖析-深度探索动态语言核心技术

Python源码剖析-深度探索动态语言核心技术内容简介Python 总体架构Python源代码的组织 内容简介 为了更好地利用python语言,无论是python本身还是和C/C++配合使用,深刻理解python的运行原理都是非常重要的,本文以CPython源码为研究对象,深入剖析Python的实现。主要包含: Python内置对象 Python虚拟机 Python高级特性 本文参考: Python源码剖析一书 学习建议:唯有亲身尝试,才能深解其中三昧。 在真实的源码和文章的描述相比较揣摩,动手捣鼓捣鼓

专注游戏研发 4222

NodeJS源码分析(一):编译与构建

从这一篇开始,打算进一步的研究nodejs的相关内容。个人觉得,除了看官方文档之外,再进一步的了解一个框架和系统,最直接的就莫过于阅读它的源码了,所以,我决定开始研究nodejs的源码,并记录这个过程。研究源码的第一步当然就是下载并编译出来。

新兴IT民工的专栏 942

【专题】python源码解读

文章目录准备工作Python整体结构源码目录Python对象Python内对象类型对象对象的创建类型的类型Python中的整数对象小整形对象大整数对象 准备工作 Python整体结构 python架构主要分为三部分 python文件 python解释器 scanner词法分析,将代码且分为一个个token parser词法分析建立AST compiler根据AST生成python字节码 code Evaluator(虚拟机)执行这些字节码 运行时环境 内建对象:list dict 内存分配器:和

qq_36581961的博客 3625

LightTools中VBA宏的编写入门

LightTools和VBA联动

bestgamer的博客 2348

Ubuntu的初步环境配置(VMware)

4.屏幕显示不全解决完后,在试用Ubuntu里面,直接双击“安装Ubuntu 20.04.6 LTS”。如果不存在“屏幕显示不全”的问题,直接点击安装即可,大致安装步骤与以下步骤类似。15.点击现在重启,重启成功后,会出现“清除安装介质”的问题。19.此时点开火狐,可以上网,但只可输入英文,不可以输入中文,具体解决方法见3.2。3.进入安装界面,此时可能会出现“屏幕显示不全”的问题,具体解决方法见3.1。8.选择“正常安装”、“安装Ubuntu时下载更新”,点击继续。最后,点击保留更改,设置成功。

森菌蛙诺的博客 2276

Python|cpython 源码解析|Python 程序运行原理

在 Python 3.6 及以上,每条字节码指令包含 2 个字节(即上述列表中每 2 个 0 - 255 之间的整数构成一条字节码指令),第 1 个字节是字节码指令,第 2 个字节是字节码指令的参数,如果字节码指令没有参数则使用。Python 是一种解释性语言(虽然该定义由于字节码编译器的存在而有所模糊),即不需要在运行前就编译成机器语言,而是在运行时才编译为机器语言。需要注意的是,字节码是 CPython 解释器的实现细节,不保证不会在 Python 版本之间添加、删除或更改字节码。

长行 1367

提高机器学习模型准确率的八大方法

原文连接:http://www.techweb.com.cn/network/system/2016-01-27/2269274.shtml 此文仅是一个小品文,详细理论请读论文,参考书籍。 前言:我的概述 机器学习面对的是一个受限有穷空间 到 一个扩大的有穷空间 的泛化问题。若假设空间足以覆盖真实的数据空间,机器学习方法可以弃之不...

alppkk4545的博客 1301

《Python源码剖析》

1. Python内建对象 对象是数据以及基于这些数据的操作的集合,在Python中,对象就是为C中的结构体在堆上申请的一块内存。 在Python中,一个对象一旦被创建,它在内存中的大小就是不变的了,那些需要容纳可变长度数据的对象只能在对象内维护一个指向一块可变大小的内存区域的指针。 1.1.1 对象机制的基石 -- PyObject [object.h] typedef struct ...

420

学习海康VisionMaster之顶点检测

2:应用场景:海康VisionMaster的顶点检测功能在工业视觉检测中具有广泛的应用场景,尤其在精密制造、电子元件检测和机械加工等领域,其通过高精度定位物体的关键点(如角点、交点或边缘顶点)来实现自动化测量与质量控制。基本参数这里就是画ROI,设定跟踪参数和之前的工具是一样的方法,这里画的方向需要注意,如下图所示,边缘的扫描方向正好对应需要查找的边缘点。一个不是很规则的物体需要检测一个凸台的顶角坐标,其实靠边缘与边缘交点是不太稳定的,如下图所示,边缘很短,很容易产生误抓边缘。1:什么是顶点检测?

yuhouxiyang的专栏 1524

PSCAD学习笔记(1)Project Settings(重点snapshot设置)

若不勾选,则横坐标为实际时间2-7s,故障显示在第3s发生。图片中时间坐标轴显示为0-5s,故障时刻显示为第1s,即0-1s展示系统稳态,1-5s展示系统发生故障后的暂态响应,如何通过快照文件实现?勾选该项后,使用快照文件启动仿真会将仿真起始时间强制设置为0s,反之不勾选则依据快照文件保存的时间轴继续(即坐标为实际时间)。如果已有的快照文件保存的是0s至5s的仿真内容,则仿真运行时间从5s开始,到10s结束。如果已有的快照文件保存的是0s至2s的仿真内容,则仿真运行时间从2s开始,到7s结束;

gwenh的博客 7343

Python源码分析1 - Building Python http://blog.youkuaiyun.com/atfield/article/details/1396729

Python源码分析1 - Building Python 分类: Python源码分析2006-11-19 21:40 6808人阅读 评论(6) 收藏 举报 pythonbuildincludewindowsmanagermodule Python是一种动态的脚本语言。具体的我就不多介绍了,可以参考www.python.org. Python是Open Sourc

诺尔曼 562

Modbus RTU 详解 + FreeMODBUS移植(附项目源码)

本文全面解析Modbus RTU通信协议,详细介绍其报文格式、功能码定义及典型应用场景,并手把手指导如何将FreeMODBUS协议栈移植到嵌入式平台。内容涵盖从底层硬件驱动配置、协议栈移植到主机/从机通信测试的全流程,重点讲解移植过程中的常见问题及解决方案。文章最后提供经过实测的完整项目源码,帮助开发者快速实现稳定的Modbus RTU通信功能。

Bit_Dong的博客 2927

【开源软件移植】从 0 到 1:KDiff3 适配鸿蒙 PC 全流程实战 —— Qt5 交叉编译 + HAP 打包完整复现

本文详细记录了将开源软件KDiff3移植到鸿蒙PC(HarmonyOS NEXT)的全过程。作者选择了KDiff3 0.9.98版本进行移植,因其依赖体系简单(仅需Qt5 Core/Gui/Widgets/PrintSupport),且自带KDE API的伪实现,大大降低了移植难度。整个移植过程分为7个阶段:环境准备、源码下载、源码分析、构建脚本改写、交叉编译、产物验证和Runtime收集。文章重点介绍了环境配置、源码选型分析以及关键编译步骤,最终成功将KDiff3交叉编译为可在鸿蒙HAP工程中集成的lib

一键难忘的博客 5万+

OpenHarmony + AI:深度解析 Whisper.cpp 智慧语音系统级移植与 NAPI 封装实战

【代码】OpenHarmony + AI:深度解析 Whisper.cpp 智慧语音系统级移植与 NAPI 封装实战。

m0_67505153的博客 188

零基础DSP实战TMS320F28035:第九节,ADC比较器&EPWM

ADC比较器框图如下所示:-电压-----------------------------输出-电压A>电压B------------------ 1-电压A

sinat_30943509的博客 2535

结合源码分析 setTimeout / setInterval / setImmediate / process.nextTick 执行时机

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34066347的博客 484

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

linux wordcloud 中文,词云:解决pip install wordcloud安装过程中报错“error: command 'x86_64-linux-gnu-gcc' failed wi...

外部环境:ubuntu16.04, 64bits, 全局环境python2.7在虚拟环境(python3.5)中执行pip install wordcloud时安装失败,报错:error: command 'x86_64-linux-gnu-gcc' failed with exit status----------------------------------------Failed bu...

weixin_39757169的博客 317

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

在线查看 Android 系统源代码 (AOSPXRef and AndroidXRef)

在线查看 Android 系统源代码 (AOSPXRef and AndroidXRef)

程永强 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

大型CAx(CAD/CAE/CAPP/CAM)工业软件开发中的关键组件

通过对FreeCAD、SALOME等多款代码的分析研究,发现这些软件在架构设计、模块实现等方面,存在许多相似(同)的技术思想。因此,有必要对这些共性、主流的技术予以总结分析。

国产CAx(CAD/CAE/CAM)软件研发 1万+

【开源软件移植】超大日志文件浏览器glogg适配鸿蒙 PC 全流程实战 —— Qt5 qmake 项目交叉编译完整复现

本文介绍了将开源日志查看工具glogg 1.1.4成功移植到鸿蒙PC平台的全过程。该项目基于Qt5框架开发,仅依赖boost库(已移除),通过3天时间完成了从源码下载到交叉编译的全流程。移植过程包括环境搭建、源码分析、依赖移除、qmake项目改造和交叉编译等关键步骤,最终生成7MB大小的原生鸿蒙可执行文件。该工作填补了鸿蒙PC生态中专业日志查看工具的空白,同时为后续移植更多Qt5应用提供了方法论参考。项目源码已在AtomGit开源。

一键难忘的博客 4万+
上一篇: C++反汇编揭秘1 – 一个简单C++程序反汇编解析 (Rev. 3)
下一篇: Python源码分析2 - 一个简单的Python程序的执行
ATField
博客等级 码龄25年 673粉丝 119原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值