先に切り分ける:サーバー・画面・カーネル
「Jupyterが起動しない」は、コマンドが見つからない、サーバーが停止する、URL/認証/画面表示の問題、カーネルだけの失敗に分けて調べます。画面が開かないだけで再インストールや認証解除を行いません。端末のログ、利用Python、対象版と実ポートを先に確認します。
同じPython環境に何が入っているか
次はパッケージのmetadataを読むだけの例です。nullは「このPython環境では見つからない」の意味で、PC全体の未導入を証明しません。実行パスや環境名には個人情報が含まれる場合があるため、共有時は必要部分だけ残します。メタパッケージjupyterの有無とnotebook/server/kernelの有無も別です。
import json
from importlib import metadata
import sys
packages = {}
for name in ('notebook', 'jupyter_server', 'jupyter_core', 'ipykernel'):
try:
packages[name] = metadata.version(name)
except metadata.PackageNotFoundError:
packages[name] = None
print(json.dumps({'python': sys.version.split()[0], 'executable': sys.executable,
'packages': packages}, ensure_ascii=False, indent=2))
同じPythonを指定したpython -m pip show notebook jupyter_server ipykernelやpython -m pip checkも手掛かりです。pip checkの成功は全設定/拡張の互換性保証ではなく、更新が必要な場合も対象環境/制約/復元手段を確認してから行います。conda管理環境へ無条件にpip更新を重ねません。
ローカル限定でログを確認する起動例
Notebook7用の次の例は、認証設定を変更せず127.0.0.1で起動し、ブラウザを自動で開きません。既定8888が使用中なら別ポートを自動試行せず失敗します。python start-local.py --port 8889のように利用可能なポートを選ぶか、通常の自動再試行を使うかを区別します。これは既存設定の安全性を監査するプログラムではありません。以前に認証を無効化した設定がある場合は、その状態を引き継ぎ得るので設定/認証を管理者と確認してください。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--port', type=int, default=8888)
args = parser.parse_args()
if not 1 <= args.port <= 65535:
parser.error('port must be between 1 and 65535')
from notebook.app import main
main(argv=['--no-browser', '--ip=127.0.0.1', f'--port={args.port}',
'--ServerApp.port_retries=0'])
専用の空設定ディレクトリのNotebook7.6.3/Server2.21.1検体では、サーバー起動後も認証なし/誤tokenのAPI読取は403、正tokenは200でした。占有した検体ポートでは起動失敗となり、先に占有したプロセスは終了されませんでした。ログ/一覧から実際のポートと認証方式を読み、自動的に8888固定でアクセスしないでください。
安全な確認順
| 症状 | 先に確認すること |
|---|---|
| command not found | 同じPythonとlauncherの配置/PATH。未導入と別環境を区別 |
| port in use | 起動失敗か別ポートへ継続したかを実ログで確認。未知のPIDをkillしない |
| ブラウザだけ開かない | 起動済みの実URL/ポートとサーバーが存続しているかを確認 |
| 認証できない | そのサーバーの現行token/password/cookieを確認。認証を空にしない |
| 画面は開くがkernel失敗 | 選択kernelとkernel.jsonの実行Python/存在を確認。削除/再登録は別判断 |
| ImportError | 対象Python/依存版/tracebackの必要箇所。全更新や固定downgradeを先に行わない |
tokenと旧ログを扱うとき
Jupyterへの接続はコード実行につながります。token付きURL、server listの全文、設定/tracebackの秘密値を公開しません。tokenがURLにない場合も、password方式か認証停止か等を確認し、見た目だけで安全と判断しません。認証を止める旧例は「開発用」なら安全という意味ではなく、起動不良の通常対処として使いません。
元記事の色付きログは、8888/8889競合後に8890で起動した流れが有用なので復元します。Python3.6/NotebookApp/JupyterLab beta等は当時の記録であり、現行の出力保証ではありません。当時のtoken値は新版本文では伏せ、URL中のtoken重複も再現手順として推奨しません。元版本文は履歴として保持します。
新版本文の伏字化だけでは、既に共有された認証情報の失効にはなりません。有効なtokenを共有した場合は、所有者が影響/保存状態と正規の停止・再発行手順を確認します。旧tokenが現在も有効かどうかを、この記事から断定するものではありません。
Notebook7と旧Classic、SSH、kernelは別に判断する
Notebook7はJupyter Server/JupyterLab系の構成で、旧ClassicのNotebookApp設定や拡張をそのまま共通仕様にしません。JupyterLabへの移行は任意で、起動不良の必須対処ではありません。SSH転送は待受/経路/認証と別であり、remoteのlocalhostを自分のPCのlocalhostと混同しません。今回の検体は本番SSH、実ブラウザ/拡張、conda/OS別kernelの修復やセル実行の確認ではありません。
基本操作は実親Jupyter Notebook、同じ親のLinux/Macのインストールと起動とWindowsの起動も対象版を確認して参照してください。既存の10309はAnaconda配下のWindowsインストールです。Anaconda自体の導入と、選択した環境にJupyterがあるかの確認を分けて参照します。
既存のパターン別資料
| この記事の要点 |
|---|
|
パターン別の対処
パターン 1: コマンドが見つからない
旧例の注意:shellの表示例です。command not foundだけでPC全体の未導入と断定せず、同じPython/launcher/PATHを確認します。
$ jupyter notebook
bash: jupyter: command not found
原因候補: 未導入/別Python環境/PATHやlauncherの不整合等。ログと対象環境を確認
旧例の注意:pip showは未導入時に警告/非0終了となり得ます。pip/condaの対象を分け、全更新/再導入を自動実行しません。
# 確認
$ pip show jupyter
# 未インストールなら出力なし
# インストール
$ pip install --upgrade jupyter
# Anaconda 環境なら
$ conda install jupyter
# パス確認
$ which jupyter # Linux/Mac
$ where jupyter # Windows
パターン 2: ポートが使用中
旧例の注意:出力例で、8888が使用中でも別ポートでサーバーが起動する場合があります。実ログのポート/起動成否を確認します。
$ jupyter notebook
[I] 8888 already in use, trying another port
[I] Jupyter Notebook is running at: http://localhost:8889/
別のプロセスが 8888 を使用中。対処:
旧例の注意:別ポート指定と他プロセスの強制終了は別です。未知のPIDへのkill -9は行わず、保存状態/所有者/正常終了手順を確認します。
# 別ポートで起動
$ jupyter notebook --port 8889
# 占有プロセスを確認
$ lsof -i :8888 # Linux/Mac
$ netstat -ano | findstr :8888 # Windows
# プロセスを終了
$ kill -9 <PID>
パターン 3: ブラウザが自動で開かない
旧例の注意:token付きURLは認証情報です。共有/公開せず、ログの実URLを自分のブラウザだけで使います。browser名/設定はOS/版で異なります。
# ターミナルに表示される URL をコピーしてブラウザに貼り付け
[I] http://localhost:8888/?token=abc123def456...
# またはブラウザ起動を抑止して URL だけ確認
$ jupyter notebook --no-browser
# デフォルトブラウザを指定
$ jupyter notebook --browser=chrome
パターン 4: 認証トークンエラー
古い URL を使ったり、別のターミナルで起動した Jupyter にアクセスしようとした場合:
旧例の注意:token/passwordを空にする行は通常の対処として実行しません。「開発用のみ」でも保護の代わりになりません。ClassicとServer2の認証設定/CLIを区別します。
# 現在実行中の Jupyter インスタンスとトークンを確認
$ jupyter notebook list
Currently running servers:
http://localhost:8888/?token=abc123def456... :: /home/user
# トークンを無効化して起動(開発用のみ)
$ jupyter notebook --NotebookApp.token='' --NotebookApp.password=''
# パスワード方式に切替
$ jupyter notebook password
Enter password: ****
Verify password: ****
パターン 5: カーネルエラー(Dead kernel)
起動はするがコード実行時に「カーネルが死にました」と出る:
旧例の注意:kernelの再インストール/登録/削除は読取確認ではありません。kernel.jsonの実行先/対象環境を先に調べ、既存kernelspecを削除しません。
# Python カーネルを再インストール
$ python -m ipykernel install --user
# 利用可能カーネル確認
$ jupyter kernelspec list
# カーネル削除+再追加
$ jupyter kernelspec uninstall python3
$ python -m ipykernel install --user --name=python3
パターン 6: 依存関係エラー
旧例の注意:特定ImportErrorの例であり、markupsafeの固定downgradeや全依存更新を定型実行しません。対象版/制約/tracebackと復元手段を確認します。
# よくあるエラー
ImportError: cannot import name 'soft_unicode' from 'markupsafe'
# 対処: markupsafe をダウングレード
$ pip install markupsafe==2.0.1
# またはまとめて更新
$ pip install --upgrade jupyter notebook ipython markupsafe
パターン 7: Windows で文字化け・パスエラー
旧例の注意:日本語パスだけを原因と断定せず、cmd/PowerShellや設定の対象も分けます。DATA_DIR変更はruntime/config/kernelの全移行ではありません。
# 日本語ユーザー名のパスでエラーが出ることがある
# C:\Users\田中\... → 英数字パスに変更
$ set JUPYTER_DATA_DIR=C:\jupyter_data
$ jupyter notebook
JupyterLab への移行(任意)
旧Classic、Notebook7、Jupyter Server、JupyterLabを区別します。Notebook7もJupyterLab/Jupyter Serverに基づく構成で、Lab移行を起動失敗の必須対処にしません。
旧例の注意:Labの導入は任意で、認証/拡張/環境の互換確認とは別です。Notebook起動不良の自動修復として依存を追加しません。
$ pip install jupyterlab
$ jupyter lab
# ブラウザで http://localhost:8888/lab が開く
メリット:
- タブ式 UI で複数ノートを並列表示
- ターミナル・ファイルブラウザ統合
- 拡張機能エコシステム
- Notebook (Classic) も併用可能
Anaconda 環境での Jupyter
旧例の注意:conda環境とpipの対象、user kernelspecの保存先/同名上書きを確認します。登録を確認の前提にしません。
# Anaconda Navigator で起動
# または
$ conda activate myenv
$ jupyter notebook
# 仮想環境のカーネルを追加
$ conda activate myenv
$ pip install ipykernel
$ python -m ipykernel install --user --name=myenv --display-name="Python (myenv)"
SSH 越しのリモート Jupyter
サーバ側で起動した Jupyter にローカルブラウザからアクセス:
旧例の注意:サーバー側とローカル側のlocalhostは別です。待受/実ポート/転送/認証を確認し、SSH転送だけで保護や画面表示を保証しません。
# サーバ側(リモート)
$ jupyter notebook --no-browser --port 8888
# ローカル側(SSH ポートフォワーディング)
$ ssh -L 8888:localhost:8888 user@remote-server
# ローカルブラウザで http://localhost:8888 を開く
関連記事
元の書式付き資料
元例の注意:Python3.6/旧NotebookAppの当時のログです。8888/8889競合後に8890で起動した順序を保持しますが、現行版の出力保証ではありません。当時のtokenは省略し、二重token URLも再利用しません。
|
$ jupyter notebook |
確認範囲と一次資料
Python3.12.10と専用venvのNotebook7.6.3/Server2.21.1、空設定/専用rootのローカル検体で確認した範囲です。本番や利用者の設定/保存済みnotebook・kernel・認証を変更していません。全版/全拡張/実ブラウザ・SSH/conda/全OS・実際のkernel修復やセル実行の保証ではありません。
- Jupyter Serverの認証/セキュリティ / Notebookの問題切分け / Notebook7のserver移行
- Python3.12の組込み型/真偽値/dict / re.match / 型ヒントと実行時の違い
子ページはありません
- インストールと起動方法(Linux, Mac)
- 起動方法(Windows)
- Jupyter Notebookが起動しない場合の対処方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09