gpt4 book ai didi

python - 将整个Python标准库编译为字节码是否可能且可行?

转载 作者:太空宇宙 更新时间:2023-11-03 15:17:09 25 4
gpt4 key购买 nike

有没有一种简单的方法可以将整个Python标准库预“编译”为字节码?如果是这样,如果相应的 .pyc 文件已经存在(只要标准库没有更新或修改),这是否也能保证 Python 永远不会重新“编译”文件?

背景:在应用程序服务器上,Python 有时会自发地进入损坏状态,如下所示:

C:\> python
Traceback (most recent call last):
File "C:\Python27\lib\site.py", line 563, in <module>
main()
File "C:\Python27\lib\site.py", line 552, in main
aliasmbcs()
File "C:\Python27\lib\site.py", line 478, in aliasmbcs
enc = locale.getdefaultlocale()[1]
AttributeError: 'module' object has no attribute 'getdefaultlocale'

这可以通过重新安装Python来解决。其他人告诉我,他看到了损坏的(0 字节).pyc 文件,删除这些文件解决了问题。但是,我无法通过故意创建 0 字节 .pyc 文件来重现该问题。

我不喜欢属于标准库的文件按需“编译”为字节代码,因为这种情况发生在同时运行 Python 和 native 代码的进程中,可能会意外崩溃。我更愿意预编译所有 Python 代码,无论是否有助于解决上述情况。

最佳答案

将系统 .pyc 文件设置为只读,即使对于管理员也是如此。这应该可以防止 Python 对它们进行不必要的修改。

如果您使用的是 Windows,请转至属性 → 安全 → 编辑,然后拒绝所有组的所有权限。

关于python - 将整个Python标准库编译为字节码是否可能且可行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43799184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com