タグ付けされた質問 「relative-import」

12
相対インポート-ModuleNotFoundError:xという名前のモジュールはありません
私が本当に座ってpython 3を試したのはこれが初めてで、惨めに失敗しているようです。次の2つのファイルがあります。 test.py config.py config.pyには、いくつかの関数といくつかの変数が定義されています。私はそれを次のように取り除きました: config.py debug = True test.py import config print (config.debug) 私も持っています __init__.py ただし、次のエラーが発生します。 ModuleNotFoundError: No module named 'config' 私はpy3規則が絶対インポートを使用することであることを認識しています: from . import config ただし、これにより次のエラーが発生します。 ImportError: cannot import name 'config' だから私はここで何をすべきかについて途方に暮れています...どんな助けでも大歓迎です。:)

7
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ノートブック内での作業に関係しています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.