Python Value Error:Attempted relative import in non-package Relative import相対参照エラー

1196 ワード

相対パスimportを含むpythonスクリプトは直接実行できず、moduleとしてのみ参照できます.たとえば
from . import  mod1

このようなコードのあるファイルは、最もmoulleでは直接実行できません.相対パスはmoduleに対するパスであり、スクリプトを直接実行すると、このmoduleはmoduleの元のnameではなくmainであり、相対パスは元の相対パスではなく、インポートに失敗し、現れます.
ValueError: Attempted relative import in non-package

OK you get what you wantモジュールとパッケージ
  • pythonプログラムは、パッケージ、モジュール、および関数から構成される.
  • パケットは、一連のモジュールからなる集合である.異なるモジュールがフォルダ別に分類されてから全体のライブラリを構成する場合、パッケージと呼ぶことができます.Pythonがディレクトリをコンテンツパッケージとするためには、ディレクトリに__が含まれている必要があります.init__.pyファイル.現在のフォルダがパッケージであることを識別します.最も単純な場合は、空の__が1つしか必要ありません.init__.pyファイルでいいです.パッケージは特定のタスクを完了するツールボックスであり、パッケージの役割はプログラムの再利用を実現することです.パッケージのインポートにより、モジュールが果たす役割がより顕著になり、コードがより読み取り可能になります.
  • モジュールは、ある問題を処理する関数とクラスの集合であり、コード、関数、クラスから構成される.関数は、複数回呼び出すことができるコードです.モジュールは、関連する関数またはコードのセットを1つのファイルに整理します.1つのファイルはモジュールです.各モジュールファイルは独立した完全なネーミングスペースであり、1つのモジュールファイルには他のファイル定義の変数名が表示されません.そのファイルが明確にインポートされない限り、モジュールファイルはネーミング競合を最小化する役割を果たします.