Python 文件扩展名 .pyc、.pyd 和 .pyo 分别代表什么?2025年1月5日 | 阅读6分钟 引言Python 是当今世界上用途最广泛的编程语言之一。它有许多用于不同目的的文件扩展名。其中,.pyc、.pyd 和 .pyo 尤其值得注意。这些文件扩展名包括 .py、.pyc、.pyo 和 .txt,它们在 Python 编程中各扮演着特定的角色;因此,对于任何想要做到最好的 Python 开发者来说,理解它们非常重要。在本文中,作者将解释这两个 Python 文件扩展名的本质和功能,以及语言和框架所划分的复杂性。 1. '.pyc' 文件有几种已编译的 Python 文件,它们以类似的方式编译,包括 hatch、mark every、legend、grid、text 等。 什么是 pyc 文件?'. Pyc' 文件扩展名之所以得名,是因为它代表“Python Compiled”(Python 已编译)文件。它指的是 Python 解释器为提高脚本执行速度而创建的文件。当执行用 Python 编写的源代码(.py 文件)时,解释器首先将源代码编译成字节码,字节码是源代码的一种较低级且与平台无关的形式。如果源文件被编译成机器代码,并且生成的文件被命名为 filename.pyc,那么下次解释器运行时,就不需要重新编译源代码。这种字节码随后以 '.pyc' 扩展名的文件形式存储。 目的和好处就 '.py' 文件而言,它是次要的,但主要目的是加快用 Python 语言编写的程序的运行时间。如果源文件被编译成机器代码,并且生成的文件被命名为 filename.pyc,那么下次解释器运行时,就不需要重新编译源代码。这意味着解释器能够直接加载预编译的字节码,从而为 Python 程序提供更好、更快的启动速度。当执行用 Python 编写的源代码(.py 文件)时,解释器首先将源代码编译成字节码,字节码是源代码的一种较低级且与平台无关的形式。Python 是一个支持 Windows OS 上共享库的通用工具。在脚本中导入和使用的 DLL 文件。 .pyc 文件是如何生成的由于其动态性,pyc 文件由 Python 解释器创建,语言会将它们写入 .py 文件所在目录中的 'pycache' 目录中。 如方程式 7 所示,用于这些文件的命名模式是原始 '. ' 依赖项的格式、创建的 .py 文件的名称以及引用编译过程中使用的指定 Python 版本的后缀。例如,一个脚本可能被命名为 example。值得注意的是,必须使用 Python 3.8 编译 py 才能创建文件名 'example.cpython-38.pyc'。 示例考虑一个简单的 Python 脚本 'example.py' 输出 Hello World. 说明 当在终端中运行此脚本时,Python 解释器会处理它,将代码转换为字节码,然后为它生成一个 example.cpython-38.pyc 文件在 pycache 目录中。 2. '.pyd' 文件正如你所见,与静态模块相比,在 Python 中使用动态模块有很多好处。这是因为动态模块可以在运行时动态控制。 什么是 .pyd 文件?像 .pyd 这样的特定文件扩展名意味着“Python Dynamic module”(Python 动态模块)。它们也被称为“已编译扩展”或“二进制扩展”;这些是使用 C 或 C++ 编写的较低级文件,在解释时,它们为用 Python 编写的程序提供附加功能。本质上,Python 是一个支持 Windows OS 上共享库的通用工具。在脚本中导入和使用的 DLL 文件。 目的和好处.pyd 文件允许开发者将代码中对性能要求高的部分用 C 或 C++ 编写,然后将它们与其他 Python 应用程序链接起来。这种方法使得 Python 等解释型语言固有的进程和功能得以实现,同时又具备编译型语言的执行速度,这对于广泛的计算、数据操作和外围设备的使用非常有利。 .pyd 文件是如何生成的. pyd 文件传统上是通过使用 Microsoft Visual Studio 或 MinGW 等编译器将 C/C++ 源代码构建成共享库来生成的。然而,这些文件可以由 distutils 或 setuptools 从 Python 创建,它们是构建系统的一部分,并将帮助创建这些文件。 示例让我们从一个简单的场景开始,使用 C 扩展与 Python,简单地将两个数字相加。C 代码可能看起来像这样 要将此代码编译成 '.pyd 文件',需要生成一个 setup,如上面脚本 3 的第 8 行所示,将编译后的文件指定为 .py 文件之一的扩展模块,如下所示 运行 python 'setup.Py build_ext -inplace' 将生成一个 'example.Pyd 文件',然后可以在 Python 中导入和使用该文件。 3. '.pyo' 文件:优化 Python 文件它包括 Python 文件的优化执行时间,这意味着代码能够高效、快速地解决问题。 什么是 .pyo 文件?此编译器创建的文件扩展名是 '.pyo file',它是 'Python Optimized'(Python 优化)的缩写。这些文件与 'pyc' 文件类似,但在 Python 系统运行时使用优化标志(-O 或 -OO)时生成。PyInstaller 优化 通过优化字节码文件可以实现一些步骤,例如删除 assert 语句和 docstrings,并生成稍微更小、可能更快的字节码文件。 目的和好处.pyo 文件因此旨在增强 Python 应用程序的能力并最大限度地减少其内存使用量。通过删除生产环境中不需要的功能(如 assert 语句和 docstrings)来降低 Python 文件的“脂肪”,'.pyo' 文件可以在资源稀缺的环境中提供有价值的微优化。Python 是一个通用工具,支持 Windows OS 上的共享库,就像在脚本中导入和使用的 DLL 文件一样。 .pyo 文件是如何生成的当 Python 脚本运行时带有优化标志等选项时,就会形成它。例如,'python -O script.py' 会执行它并创建 .pyo 文件而不是 .pyc 文件。同样,-OO 标志会进行更激进的编译,从而剥离 docstrings。 示例考虑同一个 Python 脚本 'example.py' 输出 Hello World 说明 这表明使用字母 'P' 运行此脚本 python -O example。执行 'py' 将在 'pycache' 目录中创建一个 'example.cpython-38.pyo' 文件。此文件将删除 assert 语句,如果我们使用 -OO 标志编译它,甚至 docstring 也会被删除。 结论这些解释说明了与 .pyc、.pyd 和 .pyo 相关的各种职责。对于任何致力于实现更快的程序性能的 Python 开发者来说,了解鲜为人知但极其重要的文件格式——pyo 文件——至关重要。Pyc 文件创建脚本可执行文件,由于存储了已编译的字节码,它们提高了脚本运行效率;Pyd 文件支持用 C/C++ 编写的、影响性能的扩展;.pyo 文件是已编译的文件,它们实际上包含优化的字节码,在资源受限的环境中有用。Python 是一个支持 Windows OS 上共享库的通用工具。在脚本中导入和使用的 DLL 文件。如果正确使用这些文件类型,则可以大大提高性能,并且开发者有机会创建更有效、更稳定的 Python 应用程序。 下一个主题一些 Python 游戏引擎有哪些 |
简介:在本教程中,我们将学习。Python 中的预测模型根据历史数据中发现的模式预测未来的发布。本质上,通过收集和分析历史数据,您可以训练模型以识别某些模式,从而预测未来的销售额、流行病、...
阅读 10 分钟
简介:在本教程中,我们将了解 Ubuntu 中 Python 的最佳 IDE。如今,Python 是使用最广泛的编程语言之一。您每天使用的许多流行网站或软件应用程序都由 Python 提供支持。原因在于...
阅读9分钟
多维缩放 (MDS) 多维缩放 (MDS) 是一种降维技术,用于将高维记录投影到低维区域,同时尽可能地保持事实点之间的成对距离。MDS 的目的是基于距离的概念,将...的目标是...
阅读 8 分钟
特征选择是消除冗余和不相关特征以提高算法性能的重要组成部分。机器学习算法会受到维度灾难的影响,尤其是在处理高维数据集时。降维技术有助于解决这个问题...
阅读27分钟
? Excel 文件是由 Excel 或其他电子表格程序创建的电子表格。文件的类型是 Excel 二进制文件格式。Excel 文件的格式是 xlsx,存储在 Excel 文件中的数据是...
阅读 17 分钟
? 一种支持性的数据可视化方法是显示对数刻度上的值,尤其适用于涵盖不同数量级的数据集。当您查看值范围很大的信息时,这会使设计和模式更加明显。Matplotlib 是一个受欢迎的 Python 包...
阅读 4 分钟
简介 医疗图像 - 由显微镜、扫描仪和其他设备生成的图像与普通图片不同。它们的大小是关键区别之一。这些图片可能相当大。如今,千兆字节大小的演示文稿并不少见。维度的数量是...
阅读 6 分钟
在 Python 中,您可以使用 `os` 模块更改当前工作目录。当前工作目录是 Python 查找要打开或保存的文件的目录。以下是有关如何更改当前工作目录的基本说明:import os # 获取当前...
18 分钟阅读
为了确保代码质量和一致性,单元测试是软件开发的一个基本组成部分。Python 中的 unittest 系统提供了一个稳定的环境来创建和执行测试。处理异常是典型的测试实践。为了保证代码...
阅读 4 分钟
数据分析师和研究人员经常处理各种数据集,其中一些可能包含分类数据。get_dummies() 函数的应用有助于处理这些分类值。本文有助于阐明在 Python 中创建虚拟变量的过程...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India