为什么要编译 Python 脚本?您可以直接从 .py 文件运行它们并且运行良好,那么是否有性能优势或其他什么?
我还注意到我的应用程序中的某些文件被编译为 .pyc 而其他文件则没有,这是为什么?
原文由 ryeguy 发布,翻译遵循 CC BY-SA 4.0 许可协议
为什么要编译 Python 脚本?您可以直接从 .py 文件运行它们并且运行良好,那么是否有性能优势或其他什么?
我还注意到我的应用程序中的某些文件被编译为 .pyc 而其他文件则没有,这是为什么?
原文由 ryeguy 发布,翻译遵循 CC BY-SA 4.0 许可协议
.pyc 文件是已经编译为字节码的 Python。如果 Python 发现一个与您调用的 .py 文件同名的文件,它会自动运行一个 .pyc 文件。
“Python 简介”关于已编译的 Python 文件是这样 说 的:
从“.pyc”或“.pyo”文件中读取程序并不比从“.py”文件中读取程序运行得更快; “.pyc”或“.pyo”文件唯一更快的是它们的加载速度。
运行 .pyc 文件的优点是 Python 不必在运行它之前产生编译它的开销。由于无论如何 Python 都会在运行 .py 文件之前编译为字节码,因此除此之外不应该有任何性能改进。
使用已编译的 .pyc 文件可以得到多少改进?这取决于脚本的作用。对于只打印“Hello World”的非常简短的脚本,编译可能占总启动和运行时间的很大一部分。但是,对于运行时间较长的脚本,编译脚本的成本相对于总运行时间会减少。
您在命令行中命名的脚本永远不会保存到 .pyc 文件中。只有由该“主”脚本加载的模块才会以这种方式保存。
原文由 Bill Karwin 发布,翻译遵循 CC BY-SA 2.5 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答915 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
它被编译为字节码,可以更快地使用它。
某些文件未编译的原因是每次运行脚本时都会重新编译您使用
python main.py
调用的主脚本。所有导入的脚本将被编译并存储在磁盘上。Ben Blank 的重要补充: