【问题标题】:where are the .pyc files?.pyc 文件在哪里?
【发布时间】:2011-07-06 05:02:31
【问题描述】:

我是 python 的新手,因此是一个愚蠢的问题。

据我了解,在第一次执行 *.py 程序时,字节码会被创建到 *.pyc 中并一直使用到 *.py 文件发生变化为止。

这个 *.pyc 字节码可以在项目中的什么位置找到?

我会想到 bin,但那里什么都没有

【问题讨论】:

    标签: python bytecode


    【解决方案1】:

    为导入的模块创建一个 *.pyc 文件,并将它们放置在包含 .py 文件的同一目录中。但是...没有为您的程序的主脚本创建 .pyc 文件。也就是说……如果你在命令行中调用“python myscript.py”,那么myscript.py就不会有.pyc文件了。

    这就是 Python 2.x 的行为方式。但是,在 Python 3.x 中,.pyc 文件保存在 __pycache__ 目录中。有关详细信息,请参阅 David Glick 的回答。

    [编辑:添加了关于 Python 3.x 的注释]

    【讨论】:

    • 从 Python 3.8 开始,您可以设置 -X pycache_prefix=PATH 标志或 PYTHONPYCACHEPREFIX 环境变量来更改 .pyc 文件树的保存位置。见docs
    【解决方案2】:

    在 Python

    在 Python 3.2 中,编译后的文件被放置在 __pycache__ 子目录中,并且根据创建它们的 Python 解释器的不同命名。 (这对于从多个 Python 版本导入相同 Python 模块的人很有用。)请参阅http://docs.python.org/dev/whatsnew/3.2.html#pep-3147-pyc-repository-directories 了解更多信息。

    【讨论】:

    • 对于我刚刚解决的困惑的未来读者:这仅适用于模块。您的第一个“Hello, world”脚本不会在任何地方 写入.pyc 文件。有关说明,请参阅this answer
    【解决方案3】:

    它们是在包含您的.py 文件的任何目录中创建的always。此外,它们是为导入的模块创建的,而不是您直接运行的文件。

    如果您想创建 .pyc 文件,请启动 Python 解释器,然后只需 import 您选择的模块。

    【讨论】:

    • 不,他们不是。如果你设置了 `PYTHONDONTWRITEBYTECODE` 环境。 var 他们不是
    【解决方案4】:

    .pyc 文件通常创建在与它们对应的文件相同的目录中。例如,my_file.py 和 my_file.pyc 应该在同一个位置。

    【讨论】:

    • 我在源文件夹旁边看到 2 个文件:.pydevproject 和 .project。在源代码中,我只看到 .py 文件
    • 不一定每个文件都有一个 .pyc。它们通常在模块被导入而不是直接运行时创建。
    猜你喜欢
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 2022-01-16
    • 2011-09-11
    • 2017-09-04
    • 2019-09-24
    相关资源
    最近更新 更多