ホーム / お役立ち記事 / Notion AI で Python が止まる理由|実行環境の実測と、外部データとコードの渡し方
Knowledge
Notion AI のチャットで Python を実行させると、Excel の処理や集計は動く一方、外部 API への通信やページに貼った長いコードは止まることがあります。弊社がお客様の Notion で2026年7月〜10月に測った実行環境(CPU 2コア・メモリ約4.2GiB・入っている道具)と、止まった5つの場面の見分け方、外部のデータは Workers で表に置き、コードは添付で渡す直し方をまとめます。
Notion AI のチャットで Python を実行させると、Excel のファイルの処理や集計は動きます。一方、弊社が測った範囲では、外部 API への通信は止まり、ページの本文に貼った長いコードは実行まで届かないことがありました。
外への通信は、試した宛先がすべて名前解決の段階で失敗しました。弊社は、設定の誤りではなく、実行環境が外と分けられているためと見ています。
外部のデータは Notion Workers で Notion の表に置き、Notion AI にはその表を読ませます。
この記事は、Notion AI に Excel の処理や集計を任せたい業務の担当者・情報システムの担当者に向けて書きます。
弊社がお客様の Notion で測った実行環境(2026年7月〜10月)と、止まった場面の見分け方・直し方・確かめ方を、実測の記録で整理します。数は測った月の値で、今は変わりえます。
Notion の公式ヘルプは、Notion AI のエージェント(ヘルプの呼び名は Notion エージェント)が「安全なワークスペース」を使うと説明しています。
そこでは、アップロードされたファイル(PDF・CSV・Excel・Word・PowerPoint・ZIP)を読むと書いています。
同じ所に、「計算を実行する(必要に応じて簡単なコードを実行する)」とも書いています。
同じヘルプには、CPU・メモリ・使える言語・外への通信の有無は書かれていません(2026年11月2日に日本語と英語のページで確かめました)。
弊社の実測では、コードは Linux の上の Python 3.13 で動き、試した宛先の名前解決ができませんでした(2026年9月の1回・5つの宛先・4つの道具)。
IP を直に指す道は試していないので、弊社は、この環境のコードから外部 API を呼ぶ設計を採っていません。
添付の取り込みは、ユーザーのコードからの通信とは分けて見ます。添付を取る道具は Notion のファイルの置き場(file.notion.so)から取れていて、取れなくなった夜は名前解決の失敗でした。
弊社は、実行環境の中身を書き出すコードを Notion AI に流して測りました。測ったのはお客様の1つのワークスペースで、ほかのワークスペースで同じかは確かめていません。
| 項目 | 実測 | 測った月 |
|---|---|---|
| Python | 3.13(7月は 3.13.13、9月と10月は 3.13.14) | 2026年7月〜10月 |
| OS と CPU | Linux(x86_64)・2コア | 2026年7月 |
| メモリ | 総量 約4.2GiB・コンテナの上限の設定なし・3GiBまで確保できた | 2026年7月 |
| 一時の置き場 | /tmp・空き約23.5GiB | 2026年7月 |
| 時刻 | UTC(TZ の設定なし) | 2026年9月 |
| 表と文書のライブラリ | openpyxl・xlrd・pandas・numpy・lxml・Pillow・python-docx | 2026年7月・10月 |
| PDF の道具 | pdftotext・pypdf・pdfplumber・PyMuPDF・reportlab・chromium | 2026年8月・10月 |
| 外のアプリ | LibreOffice(soffice の名前で呼ぶ) | 2026年7月 |
| 無かった物 | msoffcrypto・weasyprint・pdfkit・wkhtmltopdf | 2026年10月 |
重い処理も動きました。手元で測るとメモリを最大約2.7GiB使い、LibreOffice での計算し直しを含む集計が、Notion AI の中で約1分40秒(手元は約2分)で終わりました。
その集計の出力の数値は、手元と同じでした(2026年7月)。Notion の中でのメモリの使用量は測っていません。
版は変わります。Python は7月の 3.13.13 から9月には 3.13.14 に、lxml は 6.1.1 から 6.1.3 に上がっていました。
2026年9月、Salesforce の API の入口2つと、対照の Notion の API・example.com・PyPI の計5つの宛先へ、つなげるかを試しました。5つとも名前解決の段階で失敗しました。
Python の urllib・http.client・requests と curl の4つの道具で同じ結果で、プロキシの設定もありませんでした。
Salesforce だけを止めているのではなく、試した宛先と道具のすべてで通りませんでした。
名前解決を迂回して IP を直に指す2本目のコードは、Notion AI 自身が実行を断りました。弊社は、外と分けるのは意図された作りと見て迂回は試しておらず、IP を直に指せば届くかは分かっていません。
2026年9月、約6万9千字のコードをページの本文に置いて実行を頼むと、Notion AI はページを46%までしか読めませんでした。全文を取りにいく回り道に入り、40分たっても出力は出ませんでした。
同じページが約6万4千字のときは、8分の回り道のあとに読めていました。約4千5百字増やしただけで読めなくなり、長さの境目は分かっていません。
2026年7月、約270MiBの ZIP を1つの添付で渡すと、実行環境への取り込みが失敗しました(curl の終了コード 63・Maximum file size exceeded)。
48MBずつに分けた ZIP は6つとも取り込め、5つで計143MBの添付も取り込めました。
1つのファイルの上限は、弊社の記録では48MBと約270MiBの間で、正確な値は確かめていません。
2026年10月、chromium は実行環境にありましたが、HTML を PDF にする指定(–print-to-pdf)では PDF が書かれずに終わりました。
2回とも、標準エラーに VK_ERROR_INCOMPATIBLE_DRIVER が出ました。
PDF を作る方法を順に試すコードに替えると PDF ができ、手元で同じ処理を流した PDF と文字が6ページとも同じでした。どの方法で書けたかは記録していません。
暗号化された Excel を開く msoffcrypto は入っていませんでした(2026年10月)。暗号の部品の cryptography は入っていました。
無いライブラリを読み込むコードは、ImportError で止まります。
止まった場所によって直し方が違うので、先にエラーで分けます。
AI の報告の「ネットワーク障害」のような言葉は、生のエラーではありません。弊社は、失敗した1件の生のエラー(実行したコマンドと出力の全文)を見せてもらって分けています。
弊社が実際に通した直し方は次のとおりです。
1は、Notion の公式ヘルプが、同期データベース(Workers による機能)を「外部ツールの情報をNotionデータベースに取り込み、自動的に最新の状態に保ちます」と説明している仕組みです。
Workers はビジネスプランとエンタープライズプランで使え、ワークスペースの管理者が有効にする必要があります。弊社は Workers で Salesforce のデータを毎日 Notion へ同期する仕組みを作り、いまも動いています。
2は、上の約6万9千字のコードで効きました。同じコードを .txt の添付にすると、約3分で最後まで動きました。
3は、msoffcrypto で試しました。同梱した msoffcrypto で暗号化された資料が開けました(2026年10月)。
出力は手元の同じ処理と比べて、約28万セルで違いがありませんでした(TODAY() の日付のセルを除く)。
4は、約270MiBを6つに分けて渡し、MD5 が一致して一度で通りました(2026年7月)。
処理の分け方は、7月は5つの処理を1本ずつ流して通し、10月は3段の処理を1回の依頼で通しました。どちらも出力の数値は手元と同じで、一括で流して止まった記録はありません。
載せる前に、実行環境を測るコードを流します。次のコードは、版・CPU・メモリ・一時の置き場・ライブラリ・外のアプリ・名前解決を書き出し、結果を JSON のファイルにします。
import hashlib, importlib, json, os, platform, shutil, socket, tempfile, time
r = {
"python": platform.python_version(),
"os": platform.platform(),
"cpu": os.cpu_count(),
"utc_offset_hours": -time.timezone / 3600,
}
try:
with open("/proc/meminfo") as f:
r["mem_total"] = f.readline().strip()
except OSError as e:
r["mem_total"] = f"読めず {type(e).__name__}"
du = shutil.disk_usage(tempfile.gettempdir())
r["tmp_free_gib"] = round(du.free / 2**30, 1)
libs = {}
for name in ["openpyxl", "xlrd", "pandas", "numpy", "lxml", "PIL", "docx",
"fitz", "pypdf", "pdfplumber", "msoffcrypto"]:
try:
m = importlib.import_module(name)
libs[name] = str(getattr(m, "__version__", "あり"))
except Exception as e:
libs[name] = f"なし {type(e).__name__}"
r["libs"] = libs
r["commands"] = {c: shutil.which(c) or "なし" for c in ["soffice", "chromium", "pdftotext"]}
try:
socket.getaddrinfo("example.com", 443)
r["dns"] = "通る"
except OSError as e:
r["dns"] = f"通らない {e}"
data = json.dumps(r, ensure_ascii=False, indent=1).encode("utf-8")
with open("probe_result.json", "wb") as f:
f.write(data)
print(data.decode("utf-8"))
print("sha256", hashlib.sha256(data).hexdigest())
このコードを probe.txt として Notion のページに添付します。
チャットでは「添付されている probe.txt を取得し、そのまま Python として実行し、できた probe_result.json を返してください」と頼みます。
名前解決は宛先の名前を引くだけで、example.com にデータは送りません。結果の dns の欄が「通らない」なら、その環境のコードからは名前で宛先を引けず、外部 API を名前で呼ぶコードは止まります。
チャットに貼られた中身ではなく、返ってきたファイルを読みます。受け取ったファイルの sha256 が、コードが出した sha256 と合えば、途中で変わっていません。
このコードは、2026年11月2日に手元の macOS(Python 3.14)で流して確かめました。本物の Notion には送っていません。
処理を載せた後は、同じ入力で手元でも流し、出力のファイルを全部のセルで比べます。弊社は、7月の5つの処理と10月の処理を、この形で手元と照らしました。
1つのファイルを読んで集計・整形し、ファイルで返す処理なら、自力で足ります。外への通信が要らず、1つの添付が48MB以下なら、上の測るコードと手元との照合で回せます。
自力の壁は次の4つです。
外注の分かれ目は、外部のシステムとつなぐかと、Notion の中の出力を手元と全件で照らし続けられるかです。外注するなら、見積もりを比べる前に次の3点を確かめてください。
ゴムマリでは、Notion のデータベースの設計と構築、Workers での外部のシステムとの同期、Notion AI のコード実行で Excel などを処理する仕組みを、業務データベースの開発・構築(Notion 対応)として承ります。
料金は初期30万円から、保守は月3万円から、期間は2週間からです。
1つの業務を回す仕組みを、動かす場所を Notion の外(御社が指定する環境・ゴムマリが用意して保守する環境)も含めて選びたい場合は、AIエージェント導入で承ります。料金は1つの業務ごとに初期50万円から、月額5万円からです。
進め方は相談からご連絡ください。
Notion で頼めることの全体は、Notion の構築と開発にまとめています。
まず、上のコードを添付で流し、dns の欄とメモリの総量を見てください。dns が「通らない」なら、外部のデータは Workers で表に置く前提で設計します。
次に、載せたい処理を手元で流してメモリの最大と処理の時間を測り、上の実測と比べます。収まらなければ、載せる前に処理を分けるか、外で回すかを決めます。
Notion AI の自動入力が手で直した値を書き直す件は、Notion AI の自動入力が直した値を上書きする理由にまとめています。そちらは、データベースの項目の自動入力の層です。
Workers の同期で日本語が化ける件は、Notion Workers の同期で日本語が1文字だけ化ける理由にまとめています。
関連記事: Notion AI で書類を作り、照合する進め方/Notion AI の自動入力が直した値を上書きする理由/Notion Workers の同期で日本語が1文字だけ化ける理由/Salesforce から Notion への同期で消した値が残る理由
ワークスアプリケーションズで大手企業向けERPの営業と導入を担当し、外資系SaaS企業と国内大手放送局で販路と新規事業の立ち上げ、AI学習用データを扱うAIスタートアップ2社でマーケティングと営業を担った。2024年10月から生成AIの実装に入り、いまは大手企業の現場で、AIエージェントを要件定義から運用まで手がけている。
Ask
Notion をお使いの会社
Notion の構築と開発
データベースの設計と移行、ほかのシステムとの同期、Notion AI で書類を作り照合する仕組み、Notion Workers の開発、保守まで、まとめてお引き受けします。
初期 30万円〜(2週間〜)
Related
Excel の台帳を Notion へ移すには、表の形とキーを決め、型を決めてリレーションと一緒に取り込み、数式と集計を作り直してから、件数・キー・値・先頭のゼロ・空の値・リレーション・計算の結果の7つで照合します。Notion の公式ヘルプと API の文書の決まりと、弊社が管理表の約2千明細を移し、Notion で計算した残が移したすべてのロットで元の表と一致した照合の手順でまとめます。
活用ガイドNotion AI に書類を作らせて照合するときは、手順を Notion AI への指示書、読めば決まる処理を添付のコード、1回ごとの結果を記録のデータベースに分けます。弊社の導入の事例の試作では、同じ題材で、文章の指示は発注番号を3回のうち2回誤り、添付のコードは2回とも誤りませんでした。分け方の問い、進める手順、誤りを仕込む照合の進め方を、弊社の記録でまとめます。
FAQ
弊社の実測(2026年9月)では呼べませんでした。試した宛先5つとも名前解決の段階で失敗し、Notion 自身の API も同じでした。IP を直に指す道は試していません。弊社は、外部のデータを Notion Workers で Notion の表へ同期し、Notion AI にはその表を読ませています。
弊社は試していません。PyPI(pypi.org)の名前解決も通らなかったので、外から取る形は通らない見込みです。弊社は、Python だけで書かれたライブラリを処理一式の ZIP に同梱して渡し、動かしました。
弊社の実測(2026年7月)では、CPU は2コア、メモリの総量は約4.2GiBで、3GiBまで確保できました。手元で最大約2.7GiBのメモリを使う集計も、Notion の中では約1分40秒(手元は約2分)で終わりました。上限は確かめておらず、今は変わりえます。
上限は確かめていません。弊社の記録では、315秒(約5分)かかる処理が最後まで動きました。Notion AI が決まった長さで待ち直すと、結果が返るまでの時間は処理の時間より長くなり、5分弱の処理で約13分かかった回がありました。
弊社の実測(2026年10月)では、python-docx で作った Word を LibreOffice で PDF にすると、日本語の字は正しく出ました。日本語の書体は44個入っていました。PyMuPDF の Story で作った PDF は、読み戻すと一部の文字列が元と一致しませんでした。