Python 3中从包含点的文件夹进行相对导入

5

假设我有以下结构:

main.py
.folder/
    a.py
    b.py

我正在使用Python 3,并且目前在main.py文件中,我想要从a.py文件中import *

  • 我认为from .folder.a import *是错误的,因为它忽略了文件夹实际上被命名为.folder而不是folder
  • 我认为from ..folder.a import *是错误的,因为我不是针对名为folder的相对父目录,而是针对与main.py文件在同一目录中名为.folder的文件夹

你的 .folder 目录中是否有一个 __init__.py 文件? - Jean-François Fabre
2
以点号开头的模块被视为相对导入。https://hg.python.org/cpython/file/3.6/Lib/importlib/__init__.py#l117 - Vasili Syrakis
1个回答

9

您不能这样做;包和模块的名称需要是有效的Python标识符,而.folder不是。您应该重命名您的目录。


@vasili-syrakis 上面的评论是在提到你的回答吗,@daniel-roseman? - k2104710

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