当我编译一个 python 文件时,我得到了一个 *.pyc 文件。当我尝试运行它时,我收到一条消息,说没有可以运行它们的程序。当我通过该选项在线搜索程序时,它说没有。有人能帮我运行这些文件吗?
答案1
由于你的 python 文件是字节编译的,你需要通过 python 解释器运行它
python yourfile.pyc
你之所以能直接运行 .py 文件,是因为你有以下代码
#!/usr/bin/python
或者
#!/usr/bin/env python
或 .py 文件第一行的类似内容。这会告诉您的 shell 使用 Python 解释器执行该文件。
答案2
为了反编译已编译的 .pyc python3 文件,我uncompyle6
在当前的 Ubuntu 操作系统中使用了以下步骤:
uncompilel6的安装:
pip3 install uncompyle6
要从 .pyc 文件创建 .py 文件,请运行:
uncompyle6 -o . your_filename.pyc
将自动创建一个具有相同现有 .pyc 文件名的新 .py 文件。
答案3
Python 编译 .py 文件并将其保存为 .pyc 文件,以便在后续调用中引用它们。.pyc 包含 Python 源文件的编译字节码,这是 Python 解释器将源代码编译成的内容。然后由 Python 的虚拟机执行此代码。删除它们 (.pyc) 并没有什么坏处,但如果您要进行大量处理,它们将节省编译时间。
Python 是一种解释型语言,而不是编译型语言,但由于存在字节码编译器,两者的区别可能比较模糊。编译通常意味着转换为运行速度最快的机器码。但解释器会获取人类可读的文本并执行它。它们可能通过中间阶段来完成此操作。
例如,当您运行 myprog.py 源文件时,python 解释器首先查看是否myprog.pyc
存在(即 的字节码编译版本myprog.py
),以及它是否与 一样新或更新myprog.py
。如果是,解释器将运行它。如果它不存在,或者myprog.py
比它更新(意味着您已更改源文件),则解释器首先编译myprog.py
为myprog.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