ホーム / お役立ち記事 / Notion AI で Python が止まる理由|実行環境の実測と、外部データとコードの渡し方

Knowledge

Notion AI で​ Python が​止まる​理由|​実行環境の​実測と、​外部​データと​コードの​渡し方

Notion AI のチャットで Python を実行させると、Excel の処理や集計は動く一方、外部 API への通信やページに貼った長いコードは止まることがあります。弊社がお客様の Notion で2026年7月〜10月に測った実行環境(CPU 2コア・メモリ約4.2GiB・入っている道具)と、止まった5つの場面の見分け方、外部のデータは Workers で表に置き、コードは添付で渡す直し方をまとめます。

著者: 村山 悠太(ゴムマリ) 最終更新: 2026年11月

Notion AI のチャットで Python を実行させると、Excel のファイルの処理や集計は動きます。一方、弊社が測った範囲では、外部 API への通信は止まり、ページの本文に貼った長いコードは実行まで届かないことがありました。

外への通信は、試した宛先がすべて名前解決の段階で失敗しました。弊社は、設定の誤りではなく、実行環境が外と分けられているためと見ています。

外部のデータは Notion Workers で Notion の表に置き、Notion AI にはその表を読ませます。

この記事は、Notion AI に Excel の処理や集計を任せたい業務の担当者・情報システムの担当者に向けて書きます。

弊社がお客様の Notion で測った実行環境(2026年7月〜10月)と、止まった場面の見分け方・直し方・確かめ方を、実測の記録で整理します。数は測った月の値で、今は変わりえます。

原因: Notion AI の​コードから、​試した​宛先の​名前を​引けなかった

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 に上がっていました。

止まった​5つの​場面

外部 API への通信

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 で止まります。

見分け方​: どこで​止まったかを、​生の​エラーで​分ける

止まった場所によって直し方が違うので、先にエラーで分けます。

  • 名前解決の失敗gaierror の Errno -2 や、curl の終了コード 6(Could not resolve host)が出ます。コードから外へつなぐ所で出たら、外への通信です。
  • 添付を置く段の名前解決の失敗一時の停止のことがあります。7月の夜は、1つのページの添付だけが取れず、同じ時刻に別のページの添付は取れました。
  • 実行まで届かないAI の考えの文に truncated(切り詰め)が出て、コードを取り直そうとし続けます。ページの本文のコードの長さを疑います。
  • 取り込みの失敗添付を置く段で curl の終了コード 63 が出ます。ファイルの大きさです。
  • 終わったのにファイルが無い道具は呼べたのに出力ができません。道具の使い方を疑います。
  • ImportErrorライブラリが入っていません。

AI の報告の「ネットワーク障害」のような言葉は、生のエラーではありません。弊社は、失敗した1件の生のエラー(実行したコマンドと出力の全文)を見せてもらって分けています。

直し方​: 外部の​データは​ Workers で​表に​置き、​コードは​添付で​渡す

弊社が実際に通した直し方は次のとおりです。

  1. 外部のシステムのデータは、Notion Workers で Notion の表へ同期し、Notion AI にはその表を読ませる
  2. 実行するコードは、ページの本文ではなく .txt の添付で渡し、指示に「添付されている ◯◯.txt を取得し、そのまま Python として実行する」と書く
  3. 入っていない、Python だけで書かれたライブラリは、処理一式の ZIP に同梱し、無いときだけ読み込み先に足す
  4. 大きなデータは、48MBずつに分けた ZIP で渡し、実行環境でつなぎ直して MD5 を照らしてから展開する

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回の依頼で通しました。どちらも出力の数値は手元と同じで、一括で流して止まった記録はありません。

落とし穴: 実際に​踏んだ​もの

  • 時間は、処理の長さでなく AI の待ち方で決まる処理はどちらも5分弱でした。依頼を送ってから結果の行ができるまで、AI が4分と5分の刻みで待ち直した回は約13分、待ち直さなかった回は約6分でした。
  • 時刻は UTCTZ の設定が無く、時刻は UTC でした。Excel の TODAY() の日付が手元より1日前になった実例があり、日本時間の日付が要る処理は、日付を引数で渡します。
  • チャットに出た文字を正にしないAI はファイルはそのまま渡しますが、チャットに書き写す文は書き換えることがあります(2026年9月・3本の依頼のうち2本)。結果はファイルで受け取ります。
  • 取り込みが続けて止まる夜がある2026年7月の夜、添付の取り込みが名前解決の失敗で1時間以上止まりました。AI は待って試し直しましたが、その間は通りませんでした。

確かめ方​: 測る​コードを​添付で​流し、​結果を​ファイルで​受け取る

載せる前に、実行環境を測るコードを流します。次のコードは、版・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つです。

  • 外部のシステムのデータが要り、Workers の開発が要る
  • 入力が大きく、分けた ZIP の受け渡しと照合が要る
  • 処理が長く、AI の待ち方を見込んだ所要の案内を決める必要がある
  • 入っていないライブラリを同梱する必要がある

外注する​場合の​判断基準

外注の分かれ目は、外部のシステムとつなぐかと、Notion の中の出力を手元と全件で照らし続けられるかです。外注するなら、見積もりを比べる前に次の3点を確かめてください。

  • 載せる前に、その環境で実行環境を測るか
  • コードをページの本文でなく、添付で渡すか
  • Notion の中の出力を、手元の同じ処理と全件で照らすか

ゴムマリでは、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週間〜)

Notion の構築と開発を見る

Related

関連

FAQ

よく​ある​質問

Notion AI のコード実行から、外部の API を呼べますか?

弊社の実測(2026年9月)では呼べませんでした。試した宛先5つとも名前解決の段階で失敗し、Notion 自身の API も同じでした。IP を直に指す道は試していません。弊社は、外部のデータを Notion Workers で Notion の表へ同期し、Notion AI にはその表を読ませています。

pip install でライブラリを足せますか?

弊社は試していません。PyPI(pypi.org)の名前解決も通らなかったので、外から取る形は通らない見込みです。弊社は、Python だけで書かれたライブラリを処理一式の ZIP に同梱して渡し、動かしました。

どれくらい重い処理まで動きますか?

弊社の実測(2026年7月)では、CPU は2コア、メモリの総量は約4.2GiBで、3GiBまで確保できました。手元で最大約2.7GiBのメモリを使う集計も、Notion の中では約1分40秒(手元は約2分)で終わりました。上限は確かめておらず、今は変わりえます。

処理に何分までかけられますか?

上限は確かめていません。弊社の記録では、315秒(約5分)かかる処理が最後まで動きました。Notion AI が決まった長さで待ち直すと、結果が返るまでの時間は処理の時間より長くなり、5分弱の処理で約13分かかった回がありました。

日本語の PDF を作れますか?

弊社の実測(2026年10月)では、python-docx で作った Word を LibreOffice で PDF にすると、日本語の字は正しく出ました。日本語の書体は44個入っていました。PyMuPDF の Story で作った PDF は、読み戻すと一部の文字列が元と一致しませんでした。

ご相談は​こちらから

相談は無料です。

相談する