.pyc文件在哪里?

27
我是一个完全不懂Python的新手,所以问题有点儿傻。 据我了解,第一次执行*.py程序时,会将字节码创建成 *.pyc 文件并在*.py文件更改之前一直使用。
请问在项目中可以找到这个*.pyc字节码位于哪里?
我认为应该在bin目录下,但那里没有任何东西。
4个回答

38

导入的模块会创建*.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文件树的位置。请参阅文档 - Jadzia626

25

在Python 3.2及以上版本中,编译后的文件被放置在名为__pycache__的子目录下,并且根据创建它们的Python解释器命名不同。这对从多个Python版本导入同一Python模块的人很有用。在Python 3.2以前的版本中,.pyc文件会被放置在与.py文件相同的目录中。具体信息请参见http://docs.python.org/dev/whatsnew/3.2.html#pep-3147-pyc-repository-directories


9
对于未来读者,如果你有我刚刚解决的疑惑:这仅适用于模块。你的第一个“Hello, world”脚本不会在任何地方写入.pyc文件。请参见此答案以获取解释。 - Wildcard

1

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

如果想要创建.pyc文件,请启动Python解释器并只需import所选择的模块即可。


不,它们不是。如果您设置了 PYTHONDONTWRITEBYTECODE 环境变量,它们就不会存在。 - Jean-François Fabre

0

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


我看到源文件夹旁边有两个文件:.pydevproject和.project。在源文件夹内,我只看到了.py文件。 - James Raitsev
并不是每个文件都会有一个 .pyc 文件。它们通常在模块被导入而不是直接运行时创建。 - user458962

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接