我是 Dagster 的新手,我正在努力将我的模块导入到 Dagster 代码中。 这是我的项目结构。
.
├── pyproject.toml
├── README.md
├── setup.cfg
├── setup.py
├── my-project
│ ├── assets.py
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── assets.cpython-311.pyc
│ │ └── __init__.cpython-311.pyc
│ ├── scaled_dataset.csv
│ └── utilities
│ ├── dataset.py
│ ├── __init__.py
│ ├── nn.py
│ ├── plotting.py
│ ├── testing.py
│ └── training.py
在我的
__init__.py
的my-poject
我已经设置了
from dagster import Definitions, load_assets_from_modules
from . import assets, utilities
all_assets = load_assets_from_modules([assets, utilities])
defs = Definitions(
assets=all_assets,
)
在我的代码中
assets.py
我有(例如):
from utilities.plotting import plot_dataset
但是,当我运行“dagster dev”时,它返回:
ModuleNotFoundError: No module named 'utilities'
Stack Trace:
File "/home/user/PycharmProjects/Dagster/venv/lib/python3.11/site-packages/dagster/_core/code_pointer.py", line 135, in load_python_module
return importlib.import_module(module_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/home/user/PycharmProjects/Dagster/my-project/my-project/__init__.py", line 3, in <module>
from . import assets, utilities
File "/home/user/PycharmProjects/Dagster/my-project/my-project/assets.py", line 12, in <module>
from utilities.plotting import plot_dataset
我错过了什么? 谢谢
我会尝试这个:
首先,将
my-project
重命名为 my_project
。
接下来,从根文件夹将项目安装为可编辑:
pip install -e .
然后更新您的导入,使它们看起来像这样:
from my_project.utilities.plotting import plot_dataset