如何运行.pyc(已编译的 python)文件?

如何运行.pyc(已编译的 python)文件?

当我编译一个 python 文件时,我得到了一个 *.pyc 文件。当我尝试运行它时,我收到一条消息,说没有可以运行它们的程序。当我通过该选项在线搜索程序时,它说没有。有人能帮我运行这些文件吗?

答案1

由于你的 python 文件是字节编译的,你需要通过 python 解释器运行它

python yourfile.pyc

你之所以能直接运行 .py 文件,是因为你有以下代码

#!/usr/bin/python

或者

#!/usr/bin/env python

或 .py 文件第一行的类似内容。这会告诉您的 shell 使用 Python 解释器执行该文件。

答案2

为了反编译已编译的 .pyc python3 文件,我uncompyle6在当前的 Ubuntu 操作系统中使用了以下步骤:

  1. uncompilel6的安装:

    pip3 install uncompyle6
    
  2. 要从 .pyc 文件创建 .py 文件,请运行:

    uncompyle6 -o . your_filename.pyc
    
  3. 将自动创建一个具有相同现有 .pyc 文件名的新 .py 文件。

答案3

Python 编译 .py 文件并将其保存为 .pyc 文件,以便在后续调用中引用它们。.pyc 包含 Python 源文件的编译字节码,这是 Python 解释器将源代码编译成的内容。然后由 Python 的虚拟机执行此代码。删除它们 (.pyc) 并没有什么坏处,但如果您要进行大量处理,它们将节省编译时间。

Python 是一种解释型语言,而不是编译型语言,但由于存在字节码编译器,两者的区别可能比较模糊。编译通常意味着转换为运行速度最快的机器码。但解释器会获取人类可读的文本并执行它。它们可能通过中间阶段来完成此操作。

例如,当您运行 myprog.py 源文件时,python 解释器首先查看是否myprog.pyc存在(即 的字节码编译版本myprog.py),以及它是否与 一样新或更新myprog.py。如果是,解释器将运行它。如果它不存在,或者myprog.py比它更新(意味着您已更改源文件),则解释器首先编译myprog.pymyprog.pyc

上面的例子有一个例外。如果你#! /usr/bin/env python在第一行放入myprog.py,使它成为可执行文件,然后myprog.py它自己运行。

答案4

将文件的位置添加到 $PATH。要了解 $PATH 中的目录,请在终端中使用此命令 echo $PATH 使用下面的命令将 file.pyc 的位置添加到 $PATH export PATH=location of the file.pyc=$PATH

相关内容