1

我用 apache Airflow 创建了一个本地项目,我想在云作曲家中运行它。我的项目包含自定义模块和调用它们的主文件。
示例:从 src.kuzzle 导入 KuzzleQuery

结构:
  • 主文件
  • 源代码
    • 谜题.py


我已经在数据存储中导入了我的项目文件夹,当我刷新气流作曲家的 UI 时,我遇到了这个错误:

  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/airflow/gcs/dags/quality-control/main.py", line 8, in <module>
    from src.kuzzle import KuzzleQuery, Tag
ModuleNotFoundError: No module named 'src' ```
4

1 回答 1

0

您可以检查以下选项:

模块路径不正确

可能,您想导入一个模块文件,但该模块不在同一个目录中。

例如:

项目结构

core.py
folder_1
---module.py

我们要导入 module.py

核心.py

import module.py #incorrect

输出:

ModuleNotFoundError: No module named 'module'

核心.py

import folder_1.module.py #correct

输出:

...Program finished with exit code 0

未安装的库

如果要在导入库的模块之前导入未安装在虚拟环境中的库的模块,则需要使用 pip 命令安装它。你可以看到这个文档

例如导入未安装的 Beautifulsoup4 库

>>> from bs4 import BeautifulSoup
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'bs4'

现在,让我们安装库并尝试重新导入它

安装:

pip install beautifulsoup4
Collecting beautifulsoup4
  Using cached https://files.pythonhosted.org/packages/d1/41/e6495bd7d3781cee623ce23ea6ac73282a373088fcd0ddc809a047b18eae/beautifulsoup4-4.9.3-py3-none-any.whl
Requirement already satisfied: soupsieve>1.2; python_version >= "3.0" in /home/py/Desktop/seo_pro/seo_env/lib/python3.6/site-packages (from beautifulsoup4) (1.9.5)
Installing collected packages: beautifulsoup4
Successfully installed beautifulsoup4-4.9.3

重新导入:

>>> from bs4 import BeautifulSoup
>>>

将文件设置为包和模块

您需要将文件正确设置为包和模块。

包是一种通过使用“带点的模块名称”来构建 Python 模块名称空间的方式。例如,模块名称 AB 指定了一个名为 A 的包中的一个名为 B 的子模块。就像使用模块使不同模块的作者不必担心彼此的全局变量名称一样,使用点分模块名称可以节省作者多模块包,如 NumPy 或 Pillow,不必担心彼此的模块名称。

sound/                          Top-level package
      __init__.py               Initialize the sound package
      formats/                  Subpackage for file format conversions
              __init__.py
              wavread.py
              wavwrite.py
              aiffread.py
              aiffwrite.py
              auread.py
              auwrite.py
              ...
      effects/                  Subpackage for sound effects
              __init__.py
              echo.py
              surround.py
              reverse.py
              ...
      filters/                  Subpackage for filters
              __init__.py
              equalizer.py
              vocoder.py
              karaoke.py

你可以看到更多的信息

于 2021-11-16T22:35:49.697 回答