Python 3を使用して、Jupyter Notebookで相対インポートを使用して、別のディレクトリに格納されているモジュールからローカル関数をインポートする
次のようなディレクトリ構造があります meta_project project1 __init__.py lib module.py __init__.py notebook_folder notebook.jpynb notebook.jpynb相対インポートを使用して関数function()にアクセスしようとすると、次のように動作しますmodule.py: from ..project1.lib.module import function 次のエラーが発生します。 SystemError Traceback (most recent call last) <ipython-input-7-6393744d93ab> in <module>() ----> 1 from ..project1.lib.module import function SystemError: Parent module '' not loaded, cannot perform relative import 相対インポートを使用してこれを機能させる方法はありますか? ノートブックサーバーはmeta_projectディレクトリレベルでインスタンス化されるため、これらのファイルの情報にアクセスできる必要があります。 また、少なくとも当初意図project1されていたように、モジュールとは考えられなかったため、__init__.pyファイルがないことに注意してください。これは、ファイルシステムディレクトリとしてのみ意図されていました。問題の解決策として、それをモジュールとして扱い、__init__.pyファイル(空のファイルも含む)を含める必要がある場合は問題ありませんが、そうするだけでは問題を解決できません。 マシン間でこのディレクトリを共有し、相対インポートを使用すると、どこでも同じコードを使用できます。また、迅速なプロトタイピングのためにノートブックを使用することが多いため、絶対パスをハッキングすることを含む提案は役に立たない可能性があります。 編集:これはPython 3の相対インポートとは異なります。Python3は、一般的にはPython 3の相対インポートについて、特にパッケージディレクトリ内からスクリプトを実行することについて説明しています。これは、異なる一般的な側面と特定の側面の両方を持つ別のディレクトリのローカルモジュールの関数を呼び出そうとするjupyterノートブック内での作業に関係しています。