You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提升Python 3加载速度?关于pyc文件加载效果的疑问

问题分析与解决方案

为什么py文件启动慢,手动移动pyc后变快?

Python默认会把编译后的pyc文件放在__pycache__目录下,文件名格式为[模块名].[Python版本号].pyc(比如你提到的带310后缀的文件)。运行py文件时,Python会先检查__pycache__里的对应版本pyc是否存在、是否和原py文件匹配(通过修改时间和哈希校验),不匹配就会重新编译。
你的情况大概率是Python没有正确读取到__pycache__里的pyc文件,可能原因包括:

  • 脚本目录或__pycache__目录权限不足,导致Python无法读写
  • 原py文件与__pycache__内的pyc校验不通过(比如py文件修改后未触发重新编译、pyc文件损坏)
  • 虚拟环境或特定文件系统下,Python读取__pycache__存在延迟

直接运行pyc文件为什么感觉更快?

直接运行pyc文件时,Python会跳过语法检查、编译生成pyc这两步,直接加载字节码执行,理论上确实比运行py文件快一点,但500行脚本的差异应该极小。你感觉到的“更快”可能是:

  • 测试时的环境干扰(比如第一次运行py文件需要加载依赖缓存,第二次运行pyc时依赖已加载)
  • 之前运行py文件时每次都在重复编译pyc(比如校验失败),直接运行pyc就跳过了这部分耗时

如何准确验证耗时差异?

用系统工具或Python内置模块精准计时:

  1. Linux/macOS用time命令:
    • 运行py文件:time python your_script.py
    • 运行pyc文件:time python your_script.pyc
    • 对比输出的real字段(实际总耗时)
  2. 跨平台用time.perf_counter:
    在脚本开头加入以下代码,统计完整执行耗时:
    import time
    start = time.perf_counter()
    
    # 你的脚本代码...
    
    end = time.perf_counter()
    print(f"总耗时: {end - start:.6f} 秒")
    
    分别运行py和pyc文件,对比输出数值

如何让Python正常使用__pycache__内的pyc?

  • 检查脚本目录和__pycache__的权限,确保Python有读写权限
  • 删除旧的__pycache__目录,让Python重新生成匹配的pyc:
    Linux/macOS:rm -r __pycache__
    Windows:rmdir /s __pycache__
  • 确保Python版本与pyc文件的版本后缀一致(比如用Python3.10运行,pyc后缀需为310)

内容的提问来源于stack exchange,提问作者Johnf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 11:45:32