Got it 👍 — let’s go step by step and make dill clear and practical.
dill?dill is a Python library that extends the standard pickle module.
pickle can serialize (“save”) Python objects into a file and later deserialize (“load”) them back.
But pickle has limitations: it cannot handle things like:
👉 dill overcomes many of these limitations. It can serialize almost anything in Python—including entire interactive sessions.
pip install dillimport dill
x = 42
y = [1, 2, 3]
def greet(name):
return f"Hello {name}!"
# ---- Save session ----
dill.dump_session("session.pkl")
# (Restart Python...)
# ---- Load session ----
dill.load_session("session.pkl")
print(x) # 42
print(y) # [1, 2, 3]
print(greet("AI")) # Hello AI!⚡ Notice: Even the function greet is restored — this wouldn’t work with pickle.
dill Save?✅ Numbers, strings, lists, dicts (like pickle) ✅ Functions (including lambdas and closures) ✅ Classes, methods, and instances ✅ Generators, iterators ✅ Entire interactive sessions
❌ What it may still struggle with:
Save one object
dill.dump(obj, open("file.pkl", "wb"))Load one object
obj = dill.load(open("file.pkl", "rb"))Save entire session (all variables)
dill.dump_session("session.pkl")Load entire session
dill.load_session("session.pkl")pickle vs dill| Feature | pickle | dill |
|---|---|---|
| Save basic types | ✅ | ✅ |
| Save custom classes | ✅ | ✅ |
| Save functions | ❌ | ✅ |
| Save lambdas | ❌ | ✅ |
| Save closures | ❌ | ✅ |
| Save entire session | ❌ | ✅ |
So:
pickle is fine.dill is the tool.You can make a quick utility file session_utils.py:
import dill
def save_session(filename="session.pkl"):
dill.dump_session(filename)
def load_session(filename="session.pkl"):
dill.load_session(filename)Then in any script:
from session_utils import save_session, load_session
x = 123
save_session("my.pkl")
# Later...
load_session("my.pkl")
print(x) # 123👉 Would you like me to show you how to use dill specifically for a step-by-step experiment workflow (like Jupyter Notebook, where you checkpoint after each cell), or just for a one-shot "save everything at once" style?
Popular topics in this scrapbook:
Other scraps from "k1ito-tech"
いい選択です 👍 diskcache は ディスクにキャッシュを保存できるライブラリ で、メモリを圧迫せずに大量のデータをキャッシュできます。しかも API がシンプルで、Webアプリや機械学習の前処理結果キャッシュなどにもよく使われます。 --- インストール bash pip inst...
If by “MCP server” you mean a server implementing the Model Context Protocol (MCP) to allow LLMs / AI agents to interact with external tools/data sour...
[2508.20722] rStar2-Agent: Agentic Reasoning Technical Report URL: https://www.arxiv.org/abs/2508.20722 Captured: 2025/9/6 17:39:22 --- Computer ...
Daytona Sandbox:開発環境の新たな可能性 Daytona Sandboxとは Daytona Sandboxは、開発者がクラウド上で瞬時に開発環境を構築・共有できる革新的なプラットフォームです。従来のローカル開発環境の制約を取り払い、どこからでもアクセス可能な統一された開発体験...
step-by-step E2B example in Python that shows stateful execution, installing packages, uploading a file, and doing a quick SQLite query—all inside a s...
Agentic workflow patterns integrate modular software agents with structured large language model (LLM) workflows, enabling autonomous reasoning and ac...
Want to create your own articles?
Get Started