【问题标题】:How to import module without class in Python?如何在 Python 中导入没有类的模块?
【发布时间】:2017-07-11 21:30:59
【问题描述】:

我的项目中有 4 个文件:

project/__init__.py
project/app.py
project/mod_x.py
project/mod_y.py

在 mod_x.py 我有一个类(例如 ModX) 在 mod_y.py 中我只有一个函数。

我从 app.py 导入模块如下:

from .mod_x import ModX
import .mod_y

我得到一个错误:

ImportError: 没有名为“mod_y”的模块

在我创建 init.py 之前,我没有遇到过这种问题(当然,我没有在模块名称前加上“.”)。

如何通过当前目录下的init.py文件导入Python3中没有类的模块?

【问题讨论】:

  • 位置方面,mod_xmod_y 没有区别(每个模块的内容无关)。为什么不以相同的方式导入它们(有或没有表示相对导入的.)?
  • @chepner 我犯了一个错误,我用 '.' 导入两者我刚刚编辑了问题。

标签: python python-3.x python-import


【解决方案1】:

相对导入仅适用于 from...import 语法。

您可以通过这种方式导入该函数:

from .mod_y import FUNCTION_NAME

模块可以这样导入:

from . import mod_y

【讨论】:

  • 是根目录还是 PYTHONPATH 中的 project 目录?
  • 亲爱的上帝,我花了一整天的时间寻找这个答案。你有什么理由不能只“import mod_y”吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-15
  • 1970-01-01
  • 2022-08-03
  • 1970-01-01
  • 2016-07-08
  • 1970-01-01
  • 2020-06-18
相关资源
最近更新 更多