如何在Python中导入没有类的模块?

4

我在项目中有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 之前,我没有遇到这种问题(当然,我没有在模块名前面加 ".")。
如何在当前目录下使用 Python3 的 init.py 文件导入不包含类的模块?

就位置而言,mod_xmod_y之间没有区别(每个模块的内容都是无关紧要的)。为什么不以相同的方式导入它们(都使用或都不使用表示相对导入的.)? - chepner
@chepner 我犯了一个错误,我用'.'导入了两个模块。我刚刚编辑了问题。 - trojek
1个回答

9

相对导入只在from...import语法中可用。

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

from .mod_y import FUNCTION_NAME

可以通过以下方式导入模块:

from . import mod_y

PYTHONPATH中是根目录还是“project”目录? - bakatrouble
2
天啊,我花了一整天的时间寻找这个答案。难道你不能只是“导入mod_y”吗? - Erin B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接