Great Expectations プロジェクトのフォルダー構造は次のとおりです。
great_expectations/
dataset/
__init__.py
oracle_dataset.py
datasource/
__init__.py
oracle_datasource.py
great_expectations.yml
datasource/__init__.py
:
from .oracle_datasource import OracleDatasource
dataset/__init__.py
:
from .oracle_dataset import OracleDataset
great_expectations.yml
:
datasources:
db_name:
credentials: ${db_name}
data_asset_type:
class_name: OracleDataset
module_name: .dataset
class_name: OracleDatasource
module_name: .datasource
Python の相対インポートが非常に紛らわしいという事実に加えて、great_expectations コマンドを実行するときにどの参照ディレクトリが使用されるのかもわかりません。試してみると:great_expectations suite new
エラーメッセージが表示されます:ValueError: no package specified for '.datasource' (required for relative module names)
上記の .yml は、以下のすべてを試した後でも進むべき道だと思います。initまたは他の場所で処理する必要がある相対インポートについて、私が理解していないことがあると思います。
編集:私も試しました:
datasources:
db_name:
credentials: ${db_name}
data_asset_type:
class_name: OracleDataset
module_name: great_expectations.dataset
class_name: OracleDatasource
module_name: great_expectations.datasource
The module: 'great_expectations.datasource' does not contain the class: 'OracleDatasource'.
このメッセージは、great_expectations ライブラリを探していることを意味していると思います。ライブラリに含まれているクラス名を試してみて、これを確認しました。
この:
datasources:
db_name:
credentials: ${db_name}
data_asset_type:
class_name: OracleDataset
module_name: dataset
class_name: OracleDatasource
module_name: datasource
No module named "datasource" could be found in the repository. Please make sure that the file, corresponding to this package and module, exists and that dynamic loading of code modules, templates, and assets is supported in your execution environment. This error is unrecoverable.
これは、ライブラリの外を見ているが、ファイルが見つからないことを意味すると思います。
この:
datasources:
db_name:
credentials: ${db_name}
data_asset_type:
class_name: OracleDataset
module_name: dataset.oracle_dataset
class_name: OracleDatasource
module_name: datasource.oracle_datasource
No module named "datasource.oracle_datasource" could be found in the repository. Please make sure that the file, corresponding to this package and module, exists and that dynamic loading of code modules, templates, and assets is supported in your execution environment. This error is unrecoverable.
これは、ライブラリの外を見ているが、ファイルが見つからないことを意味すると思います。