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

如何在Google Colab中执行Python文件并保留Runtime内存状态

解决方案

要同时满足在Notebook中执行Python文件和保留Runtime内存状态,核心是让Python文件的代码在Notebook的主进程中执行,而非启动独立子进程。以下是两种可行的实现方式:

方法1:使用exec()直接执行文件内容

这种方式会把Python文件的代码加载到当前Notebook进程中执行,所有变量、函数都会直接存入Runtime内存。

  1. 用Notebook魔法命令%%writefile将单元格代码写入Python文件:
%%writefile my_script.py
# 示例代码:定义变量和函数
user_data = {"name": "Alice", "age": 30}
def calculate_age_in_5_years():
    return user_data["age"] + 5
  1. 读取文件内容并通过exec()执行:
with open("my_script.py", "r", encoding="utf-8") as f:
    script_code = f.read()
exec(script_code)
  1. 验证Runtime状态:
print(user_data)  # 输出: {'name': 'Alice', 'age': 30}
print(calculate_age_in_5_years())  # 输出: 35

方法2:动态导入并重载模块

如果需要反复修改Python文件并重新执行,这种方式更灵活,且模块内的状态会保留在Runtime中。

  1. 写入模块文件:
%%writefile stats_module.py
total = 0
def add_num(num):
    global total
    total += num
    return total
  1. 导入并执行模块代码:
import stats_module
from importlib import reload

# 执行模块函数
print(stats_module.add_num(10))  # 输出: 10
  1. 修改stats_module.py后,重载模块以更新代码(状态会延续):
# 假设修改了stats_module.py,比如新增了multiply_num函数
reload(stats_module)
print(stats_module.add_num(5))  # 输出: 15(延续之前的total=10的状态)
print(stats_module.multiply_num(3))  # 执行新增的函数

为什么常规!python xxx.py命令不行?

用!python xxx.py会启动一个独立的子进程执行脚本,子进程的内存空间和Notebook主进程完全隔离,执行完后子进程销毁,所有变量、状态不会同步到Notebook的Runtime中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 17:16:08