Python未自动加载__pycache__中可用.pyc缓存文件问题求助
Python未自动加载__pycache__中可用.pyc缓存文件问题求助
我之前从来没在意过.pyc缓存文件,直到现在发现它根本没起作用。我的代码结构非常简单:
顶层脚本mainscript.py内容如下:
import mymodule mymodule.main()
还有一个功能模块mymodule.py:
def main(): # do stuff
第一次运行python mainscript.py时,大概要花2秒编译,运行后会生成__pycache__目录,里面有mymodule.cpython-39.pyc文件。
但问题来了——我再次运行python mainscript.py时,还是会有同样的编译延迟,而且__pycache__里的.pyc文件时间戳也没更新。我原本以为Python会自动检测到可用的.pyc缓存并直接加载,这样就能省掉那2秒编译时间,但现在完全没享受到这个优化。
我问过ChatGPT,它给出了5个排查方向,我全部试过了但都没用:
- 移除
-B选项并取消设置PYTHONDONTWRITEBYTECODE(我从一开始就没用过-B选项) - 删除过时或损坏的
.pyc文件(我已经执行了rm -rf __pycache__) - 从
.py文件运行Python而不是交互式环境(我从来没在交互式环境运行过) - 检查文件权限(都是默认权限,我还特意执行了
chmod -R 755,没效果) - 在导入前强制编译(我用了
py_compile模块来做这件事,情况还是没变)
这本来是Python最基础的内容,结构简单到不能再简单,但我就是找不到问题所在,ChatGPT也帮不上忙,有没有大佬能指点一下?
备注:内容来源于stack exchange,提问作者J B
相关产品推荐
相关产品推荐

