Python如何编译pyc?编译代码以将py转换为pyc的方法

2021年9月13日00:04:39 发表评论 1,889 次浏览

你想把 py文件转换成pyc吗?Python如何编译pyc?让我们来了解一些背景知识……

Python将py转换为pyc的方法概要

Python中的pyc文件是什么?

无论何时运行 Python 代码,都涉及两个主要步骤。

  • 代码(来自 .py 文件)被编译成字节码并将其保存为 .pyc 文件。
  • 来自该文件的字节码被解释。

Python被称为字节码解释型编程语言。

此完整过程在后台进行,因此您看不到 .pyc 文件。

当您简单地执行任何 Python 程序时,这是通常的情况。

Python 中的 py 与 pyc 文件:

如果您打开任何 py 文件,您可以看到人类可读的 Python 代码。而 pyc 文件包含字节码。你不能简单地阅读它。

现在,我们的兴趣是将 py 文件转换为 file.pypyc文件,下面有详细的Python将py转换为pyc的方法。为此,您必须编译 Python py 文件而不执行它。

什么时候创建 .pyc 文件?Python如何编译pyc?

我们在程序中导入模块。如果您是第一次导入模块,Python 会编译模块代码并创建.pyc文件。它只不过是字节码文件。

在另一种情况下,如果代码有任何变化,python 会.pyc在运行 python 脚本之前编译代码并将其保存为字节码(文件)。

.pyc 文件是在 .py 文件所在的同一文件夹中创建的。

这些都是常用的方式,Python编译生成.pyc文件。

为什么将 .py 编译为 .pyc 不会发生?

在某些情况下,Python 不会生成该.pyc文件。

如果您对编译代码的目录没有写权限,则可能会发生这种情况。当您没有足够的空间来存储字节码(.pyc文件)时,也会发生这种情况。

在这种情况下,如果您正在运行 Python 代码,它可能会运行现有(旧).pyc字节码。这是要跟踪的最糟糕的行为。

我仍然记得当我遇到这个问题时。我在 python 脚本中更新我的代码,但是当我运行代码时,我很惊讶即使在 Python 脚本中进行更改后也没有看到输出中的任何更改。

这是一种摆脱它的方法。

在Python中通过编译而不执行将py转换为pyc

Python如何编译pyc?让我们看看如何使用简单的命令创建 .pyc 文件。

为此,您可以使用两个模块来编译 Python 脚本py_compilecompileall模块,下面是Python将py文件转换为pyc的两个方法。

方法一:使用py_compile模块

Python将py转换为pyc的方法:导入py_compile您的 Python 代码。有一个函数叫做compile(). 将要编译的 Python 文件名作为参数传递。它将 Python 脚本转换为字节码(文件扩展名为 的文件pyc)。

import py_compile
py_compile.compile('abc.py')

这将编译abc.py文件并将编译后的字节码保存在abc.pyc文件中。Python 将字节码存储在abc.py文件所在的同一目录中。

方法二:使用编译所有模块

Python将py转换为pyc的方法:有时您可能需要编译给定目录中的所有 python 脚本。那么这种方法比单独编译每个文件好。

在这种情况下,请在给定目录中运行以下命令。

python -m compileall

它将编译当前目录中的所有文件。

如果您没有在 command 中提供任何目录,它会编译在 sys.path 中找到的所有 python 脚本。

注意,它只会编译 Pythonpy文件而不执行。

在这篇文章中,我没有涉及任何与编译器和解释器相关的内容,因为这不是本文的范围,本文主要是讨论Python将py文件转换为pyc。如果您有兴趣,可以阅读Compiler 和 Interpreter 之间的区别。

Python如何编译pyc?这就是如何在 Python 中转换pypyc。如果您有任何疑问,请写在评论中。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: