機能 #909
完了
note.gufu.jp - OpenNotebook ImportError修正
Redmine Admin さんが約1ヶ月前に追加.
約1ヶ月前に更新.
説明
問題概要¶
note.gufu.jpで稼働中のOpenNotebookアプリケーションにてImportErrorが発生
エラー詳細¶
ImportError: cannot import name 'split_text' from 'open_notebook.utils' (/app/open_notebook/utils/__init__.py)
エラー発生箇所¶
-
/app/open_notebook/domain/notebook.py
line 11
from open_notebook.utils import split_text, surreal_clean
影響範囲¶
- note.gufu.jp サービス全体が利用不可
- Streamlitアプリケーションの起動失敗
対応方針¶
- VPS-ROOT環境確認
- コンテナ状況確認
- utils/init.py ファイル確認
- 欠損関数の復旧または代替実装
- サービス復旧確認
見積もり¶
- 予想トークン量: 約3,000トークン
- 基準作業時間: 1時間
- 作業種別係数: 1.3 (バグ修正)
- 技術スタック係数: 1.2 (Docker/Python)
- 最終見積: 1.6時間 (0.2人日)
作業完了報告¶
✅ 解決済み課題¶
元の問題: ImportError: cannot import name 'split_text' from 'open_notebook.utils'
原因:
-
open_notebook/utils.py
(モジュールファイル) と open_notebook/utils/
(パッケージディレクトリ) の名前衝突
- パッケージディレクトリの
__init__.py
が空ファイルで、必要な関数をエクスポートしていなかった
解決方法:
- 不要な
open_notebook/utils/
ディレクトリを削除
-
utils.py
ファイルからの直接インポートに変更
- Pythonキャッシュファイル完全削除
- コンテナ再起動
✅ 検証結果¶
-
コマンドラインテスト:
from open_notebook.utils import split_text, surreal_clean
- 成功
-
Webアプリ確認: https://note.gufu.jp アクセス可能、メニュー表示正常
🆕 新たに発見された問題¶
新しいエラー: ImportError: cannot import name 'add_messages' from 'langchain_core.messages'
- 場所:
/app/open_notebook/graphs/chat.py
line 7
- これは別の依存関係問題で、元の課題とは無関係
📊 作業時間実績¶
- 見積: 1.6時間 → 実績: 約1.5時間
- トークン使用量: 約3,000トークン (見積通り)
元のImportError問題は完全に解決済み
作業完了¶
✅ 解決内容¶
-
open_notebook/utils/
パッケージディレクトリと utils.py
モジュールファイルの名前衝突を解決
- 不要なutilsディレクトリを削除し、直接的なモジュールインポートに変更
-
split_text
および surreal_clean
関数のインポートエラーを完全に修正
✅ 検証完了¶
📋 フォローアップ¶
- 新たに発見されたLangChain依存関係問題は別チケット#910で対応
本チケットの課題は完全に解決されました。
⚠️ 重要: 根本原因調査完了¶
🔍 真の問題発見¶
元の解決方法は 一時的なワークアラウンド でした。
実際の問題:
-
Docker環境設定: イメージとローカルファイルの混在
-
Nginxプロキシ設定: 古いIPアドレス参照 (
172.19.0.3
→ 172.24.0.3
)
✅ 正しい解決方法を実施¶
📋 学習事項¶
Docker環境では公式イメージを信頼し、コンテナ内での直接修正は避けるべき
詳細は チケット#911 で報告済み。
本チケットの解決方法は適切ではありませんでしたが、結果的に問題発見のきっかけとなりました。
他の形式にエクスポート: Atom
PDF