首页 > 解决方案 > 相对导入适用于 from 但导入失败

问题描述

我需要在 python 中使用相对导入,所以我这样做:

from .MyModule import MyClass

它有效:)

但是有时我不想显式导入MyClass,而是MyModule通过执行导入和访问我的类MyModule.MyClass

所以我很想做:

import .MyModule

my_instance = MyModule.MyClass()

但似乎把点放在后面import 是一种无效的语法,即使它在后面是有效的from

我想保留对 的访问权限MyClassMyModule所以我不得不这样做MyModule.MyClass,同时我需要做一个相对导入MyModule

我怎样才能做到这一点

标签: pythonimport

解决方案


相对导入语法需要一个from语句才能工作。如果访问的模块在同一个文件夹中,点是它需要的唯一参数:

from . import MyModule

my_instance = MyModule.MyClass()  # works

有关规则的完整细分,请参阅pep328 中的语法定义,您对导入应该如何工作的直觉在底部被提及为“不可用”。


推荐阅读