今更ながらPython と Jupyter Notebook

·

軽くコマンドラインでhelloを動かしたり、図書館で本をパラパラ
ネットをチラチラレベルでしたが…

ちょうどVS Code Dev Container でPyton環境を構築してみていたので…

きっかけはGlobal Azure 2025 でセッションでのMCPサーバーを動かすデモ

Windows環境でDockerコンテナ(Docker Hubに公開されているイメージ)でサクッと動かしたデモ

まあいくら.NET C#といってもPythonのエコシステムは避けては通れませんよね…

もちろんこのデモではMCPサーバーを動かして動作を見てもらう
ということが目的だったので、Windows環境でVS Codeで、その上からGitHub CopilotのAgentから
ということであればDocker一択と思います。

で、uv/uvx って?
最低でも推奨のこの方法で使っておいた方がいいよね。(理解出来るレベルには)

Time MCP Server – ゆるめも

uv: Rust製の超高速Pythonパッケージマネージャーで、PyPIに公開されているものを直接実行という感じ…

Docker コンテナを使うのと同じにそれ以上にサクッと動きますよね。

Deckerイメージを使うのは.NET Aspireとかで自分でコンテナ化して使う
ってのが本来ですよね?きっと。。。

まあそんな流れから、順番おかしいかもですが

uv/uvx から

(time MCP Server だけなら、Windows環境でもPythonは不要でuvだけでuvxでサクッ)

そして、ちょうどDev Container環境にPythonの開発コンテナもつくっていじっていたので
こっちの環境でもMCPサーバーを動かして…
(GitHub Copilot ローカル(Windows)でしか動かないのでVS CodeでClineで登録して使用)

さらにこっちのPython環境でClineやWindsuefに丸投げしてみる
➜ pipインストールやMCPサーバーのPythonコードをゴリゴリ動かしてMCPサーバー動かしてくれた…

さらに、VS Code GitHub Copilot でツールにいつの間にかJupyter Notebook関連のツールが増えている…
ちょと使って見よう…

ローカル(Windows)やWSLにPythonやJupiterいれるよりも(一応やって即消しました)
Dev Container がいいかな?

って。

はじめてちゃんとPythonとJupyter Notebook 使ったかも。

という感じで
Copilotさんに基本構文のチュートリアルNotebookを作成してもらって
ポチポチポチ
おーーーーー
動的型付けでインタプリタ…
もう何十年ぶりって感じの感覚…

このツールも動かしてみて…
動く動く…って感じ。

そして公式へ…Jupyter Notebook
という流れ…

venvとかPoetryとかPyPIとか
勉強会(オンライン)やUdemyとかでは見たんですが…
実際に使わないと忘れる(身につかない)
そんなレベルからちょっと進んだかも?

以下、ChatGPT -san とのやり取りの一部をメモ貼り付け…


はい、スクリーンショットを拝見しました。とてもきれいに動作していて、**標準的なJupyter NotebookのブラウザUI(ローカル 127.0.0.1:8888)**が正常に起動している状態です。


✅ 「Jupyter Notebook + ブラウザ」は事実上の標準です

理由:

  • 公式ツール:Jupyterプロジェクト(Project Jupyter)の代表的プロダクト
  • IPythonカーネルと完全統合:内部でIPythonを使って動いている
  • 教育・データ分析・実験用途に最適
  • ブラウザベースでクロスプラットフォーム
  • 簡易Markdown + Pythonの組み合わせが直感的で、学習やレポート作成にも向いている

📌 状況ごとの推奨

利用ケース推奨UI補足
初学者・入門教材✅ Jupyter Notebookシンプルで視覚的、セットアップも簡単
本格的な開発・マルチファイル操作🔄 JupyterLab または VS CodeJupyter Notebookはセル単位でしか扱えないため
軽量で手軽に確認したいとき🖥 IPython / bpython / CLIターミナルで素早く実験したい時など
統合開発環境が必要🧠 VS Code + Python拡張コーディング・補完・デバッグの効率向上

✅ あなたの環境について補足

  • 現在の表示は Jupyter Notebook UI ですが、もし JupyterLab を使うとより多機能なUIになります(タブ分割、ファイルブラウザ、Markdownプレビューなど)。 インストール済みであれば以下で起動可能: jupyter lab

🔁 NotebookとIDEのハイブリッドも可

  • VS Code では .ipynb ファイルを開くと Jupyter UI風のインターフェースが統合されています(セル実行、出力、変数エクスプローラーなど)。

📎 まとめ

  • はい、「Jupyter Notebook + ブラウザ」はデファクトスタンダードです。
  • 特に学習・データ分析・可視化用途では、最初の選択肢として非常に理にかなっています。
  • 機能を拡張したいときは JupyterLabVS Code への移行もシームレスです。

ご希望であれば、JupyterLabとの違いや、VS CodeでNotebookを開く操作手順なども補足できます!


ありがとうございます!
それでは以下に、JupyterLabとVS CodeのJupyter関連のおすすめ機能・拡張・設定を目的別に分けてご紹介します。


🧪【JupyterLabのおすすめ拡張機能】

JupyterLabではjupyterlab-lspなどの拡張で、IDEに近い体験が可能です。JupyterLab拡張は以下のコマンドで管理します:

jupyter labextension install <拡張名>

🔧 インストール前に(必要な場合あり):

pip install jupyterlab jupyterlab-lsp python-lsp-server

✅ 1. jupyterlab-lsp(Language Server Protocol対応)

  • 補完、ジャンプ、定義表示などIDE機能を提供
  • VS Codeの補完体験に近づく
pip install jupyterlab-lsp python-lsp-serverjupyter labextension install @krassowski/jupyterlab-lsp

✅ 2. @jupyterlab/toc

  • 目次(Table of Contents)パネル
  • 大規模ノートブックのナビゲーションが快適に
jupyter labextension install @jupyterlab/toc

✅ 3. jupyterlab-git

  • Git GUI統合
  • ノートブックの差分比較も可能(JSON構造に対応)
pip install jupyterlab-gitjupyter labextension install @jupyterlab/git

✅ 4. variable inspector

  • 変数一覧をパネル表示
  • 実行中の変数や型・値が視覚的に確認可能
jupyter labextension install @lckr/jupyterlab_variableinspector

✅ 5. jupyterlab-code-formatter

  • Blackなどによるコード整形(フォーマッタ)
  • PEP8準拠に便利
pip install blackjupyter labextension install @ryantam626/jupyterlab_code_formatter

🧩【VS CodeのJupyter環境強化】

VS Codeはすでに統合度が高いですが、以下の設定や拡張を行うとさらに快適になります。


✅ 必須拡張機能一覧(すべて Microsoft製)

拡張機能名説明
Pythonコア機能(必須)
Jupyter.ipynb 対応、カーネル連携
PylanceLSP補完高速化、型ヒント強化
Jupyter KeymapNotebook向けのキーバインド拡張
Jupyter Cell Tagsセルにタグを付与して実行制御(教育用途にも)

⚙️ 設定強化例(settings.json

{  "python.languageServer": "Pylance",  "python.formatting.provider": "black",  "python.linting.enabled": true,  "python.linting.flake8Enabled": true,  "jupyter.askForKernelRestart": false,  "jupyter.notebookFileRoot": "${workspaceFolder}",  "jupyter.interactiveWindowMode": "perFile"}

🧪 VS CodeでJupyterを便利に使うTips

  • セルは # %%.py ファイルでも使える(Python Interactiveモード
  • 変数エクスプローラは Jupyterタブ内に表示
  • .ipynb.py の変換も可能(メニューまたはコマンドパレット)

☁️【クラウド連携:VS Code / Jupyter両対応】

サービス概要備考
GitHub CodespacesVS CodeベースのクラウドIDE.ipynbも編集・実行可能
Google ColabNotebookベースの無料GPU環境Jupyter Notebook完全互換
Azure Machine Learning StudioJupyterLabと統合されたクラウドIDEエンタープライズ向けに最適

✅ まとめ

利用シーン推奨拡張
補完/定義ジャンプjupyterlab-lsp, Pylance
Git連携jupyterlab-git, VS Code Git
コード整形jupyterlab-code-formatter, black
可視化/変数variable inspector, VS Code 変数ビュー
Notebook効率化@jupyterlab/toc, Jupyter Keymap

もし、具体的に「どの拡張を先に入れたらよいか」「トラブル時の診断方法」「拡張が動かないとき」などがあれば、詳細にもご対応できます!

また、jupyter labextension list で現在の拡張確認もできます。


とても深いご洞察をありがとうございます。
そして、おっしゃる通りです — マイクロソフトエコシステム中心で静的型付け(C# / .NET)に馴染んでいる方にとって、Pythonのような動的型付け・インタープリタ言語は、最初は違和感があるものの、どこか懐かしい直感的な手触りがあると思います。


🧠 PythonとC#の文化・言語的な違いを踏まえての印象比較

観点PythonC# / .NET
型付け動的(x = 10 だけでOK)静的(int x = 10; 必須)
実行形式インタプリタ(REPL即時実行)コンパイル型(中間言語 + CLR)
開発速度プロトタイピング向き(速い)保守・大規模開発に強い
可読性明示的な制御より暗黙の流れ(Pythonic)厳格で構造的(OOPベース)
ツール群Jupyter, NumPy, pandas, matplotlib など分析寄りVisual Studio, WPF, MAUI などアプリ開発寄り
エコシステムOSS・AI・データ分析に強いエンタープライズ・クラウド開発に強い(特にAzure)

🪄 LLM時代の新しい可能性

今は言語仕様の差はLLMさんのサポートで越えられると感じています。

はい、まさにこの視点が今の「LLMネイティブな開発」の本質の一つです。

✅ かつて

  • 言語やツールごとに完全な専門性が必要
  • 習得コストが高く、横断的に使うのが難しかった

✅ 今

  • Copilot / ChatGPT / GPT-4.1 などの支援で、習得前提から即時活用へ
  • C#で構築 → PythonでAI呼び出し → YAMLでCI/CD → BicepでAzureデプロイ → Markdownでドキュメント という多言語連携が自然に可能

💬 BASIC/QuickBasicの感触に通じるもの

Pythonの「書いたらすぐ動く」という体験は、昔の:

  • PRINT "HELLO"
  • FOR I = 1 TO 10: PRINT I: NEXT

…といったQuickBasicのような流れを思い出させます。これは「試しながら学ぶ」「手を動かしながら思考する」文化に近く、AIとの対話的な開発と相性がとても良いです。


👨‍💻 今後のおすすめ活用法(マイクロソフト中心の視点から)

分野Python活用例おすすめ理由
Azure Functions軽量処理をPythonで記述Azure SDKが充実・テンプレートもあり
Power BI/Pandasデータ加工・可視化Power Queryと併用可
VS Code Dev ContainerPython入り環境をDockerで提供VS Codeと完全統合
AI・ML OpsPython + Azure ML + VS Codeトレーニングからデプロイまで一気通貫
Excel + Python(preview)Python関数でデータ処理Office 365連携が強化中(Microsoft自身が推進)

✨ 最後に

Pythonは「ちょっとしたことをすばやく形にする」力に非常に長けており、C#/.NETのような「設計重視で信頼性高く開発する」世界と補完関係にあります。

そして今のLLM時代では、Pythonの弱点(型の不明瞭さや環境トラブル)も「聞けばすぐ解決できる」ようになったことで、学びの敷居が大きく下がりました


ご希望があれば、今のご経験を活かして「マイクロソフト系 × Python × AI」でどんなことができるか、技術選定やアイデア相談もいつでもどうぞ!


こちらこそ、ありがとうございます。
ご質問の「Python、LLMのエコシステム」については、非常に重要なテーマです。

結論から先に言えば、Pythonは現在、LLM(大規模言語モデル)と最も深く結びついた言語であり、そこには「エコシステム」と呼ぶにふさわしい一連のツール、ライブラリ、フレームワーク、クラウドサービスの連携構造が存在します。


🔁 用語定義

用語意味
Pythonのエコシステム言語本体+標準ライブラリ+外部パッケージ+ツール群の集合体
LLMのエコシステムモデル(OpenAI, Claude 等)+ラッパーAPI・フレームワーク・RAG構成・MLOpsなどの総称

そしてこの二つは今やほぼ一体化している状態です。


🧩 Python × LLM エコシステムの全体像(2025年現在)

以下はその構成要素を「役割別」に分類した一覧です。

1. モデル提供系(API経由)

サービス概要Python SDK
OpenAI (ChatGPT, GPT-4.1)世界標準のLLM APIopenai
Anthropic (Claude)高コンテキストのLLManthropic
Azure OpenAIMS製クラウド統合版openai, azure-identity
Mistral, Cohere, Groq 等軽量・高速系モデル各社APIあり

2. LLMフレームワーク(ラッパー/抽象化)

フレームワーク主な用途特長
LangChainRAG/Agent構築フレームワークLLMオーケストレーション
LlamaIndexインデックス構築+RAGデータベース統合が強い
Semantic Kernelマイクロソフト製 LLM SDKC#/Python両対応(Copilot Stack向け)
HaystackRAG・QA構築用オープンソース寄り

3. 実行基盤・インタラクション

ツール用途Pythonでの役割
Jupyter / IPython対話実行環境実験とプロンプト開発に最適
Streamlit / GradioUI付きLLMアプリ開発プロトタイピングで人気
FastAPI / FlaskAPI提供LLMバックエンドの構築に定番

4. ベクトルDB・RAG基盤

サービスPython対応ライブラリ
Pineconepinecone-client
Weaviateweaviate-client
Chromachromadb
Qdrantqdrant-client

5. 開発・運用補助(MLOps/DevOps寄り)

ツール用途
Weights & Biases実験管理・ログ
MLflowモデル管理・デプロイ
Docker + VS Code Dev Containers環境分離・再現性確保
GitHub Actions + CopilotCI/CDとAI支援開発

6. 生成系ツール

ツール内容
PromptLayerプロンプトのA/Bテスト・管理
Guardrails.ai出力制御・JSON/構造化保障
LMQL, Outlines型安全な出力記述フレームワーク
Instructor, PydanticLLM出力のバリデーション・構造変換

🎯 PythonがLLMエコシステムの中心にいる理由

  • LLM関連ライブラリの9割以上がPython製
  • AI/ML技術者の多くがPythonユーザー
  • 柔軟な文法と動的言語でLLM連携に向いている
  • Jupyter Notebookという「人間とAIが対話するためのUI」が既に存在している
  • FastAPIなどとの組み合わせでSaaS/バックエンド化が容易

📘 エコシステムの連携図(概念)

[ユーザー]   ↓[Streamlit UI] / [FastAPI API]   ↓[LangChain] / [Semantic Kernel]   ↓[OpenAI API] + [ベクトルDB] + [外部データ(PDF/DB等)]   ↓[Python実行環境(Jupyter / VS Code)]   ↓[開発・監視:W&B / MLflow / Docker / GitHub]

✨ まとめ

  • PythonとLLMは、もはや不可分な関係にあります。
  • Pythonを使えば、LLMを「使う」「作る」「評価する」「サービス化する」まで一貫して扱えます。
  • .NETやC#はAIにおいて周辺支援や統合に強みがありますが、LLMの中心的なライブラリ群はPythonが圧倒的に主流です。

ご希望があれば、このPython/LLMエコシステムの中で「Semantic Kernel」「LangChain」「RAG」「Streamlit」など、実際に何から触れると良いかもご提案可能です!お気軽にどうぞ。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です