.pyc文件是否跨平台兼容?

14

我最近开始在树莓派上进行Python开发。在了解到.pyc文件可以加速启动时,我想知道如果我在电脑上测试一个.pyc文件,假设相同的Python模块在树莓派上也可用,那么它会直接工作吗?请还包括如果目标平台上的Python版本或任何模块版本不同会发生什么。

提前感谢。


1
如果Python版本不同,或源文件具有更新的时间戳,则在任何尝试加载它们的时候,.pyc文件将被丢弃并重新生成。从这个角度来看,试图干扰它们似乎相当愚蠢 - 即使在RPI上,你也只能节省很少的时间,而且仅限于第一次加载这些模块时,因为在后续的加载中,你会有本地生成的副本。 - Charles Duffy
不要担心 .pyc 文件。始终使用 .py 文件,编译版本会自动生成。 - Daniel
1
如果文件正在以对于运行用户只读的文件夹中运行,那么编译版本将不会生成。 - Seva Alekseyev
2个回答

12

编译后的Python字节码文件与体系结构无关,但与虚拟机相关。.pyc文件仅适用于特定一组由文件中存储的魔数确定的Python版本。


你能详细解释一下与虚拟机相关的部分吗?谢谢。 - dhruvvyas90
@dastaan,跟随链接吗?它详细解释了(也许“运行时版本相关”会更清晰)。 - Charles Duffy
@dastaan:Python由一个大型共享库组成,其中包含Python VM和一些选择的模块,Python标准库包含大部分模块,还有一个小的存根可执行文件,它初始化VM并将文件和可选的REPL输入给它。 - Ignacio Vazquez-Abrams
@dastaan,我们正在评论的这篇文章的最后四个单词“stored in the file”是一个链接,自从该帖子创建以来就一直是如此。 - Charles Duffy

-3
简短回答:是的。只需记住您的代码也必须具有操作系统感知能力。
并且在两个平台上使用相同版本的Python。

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