从子包中导入模块

3

我的项目具有这种结构:

mypackage
|
|-- __init__.py
|
|-- file.py
|
|-- subpackage
    |
    |-- __init__.py
    |
    |-- function.py

如何从file.py中导入子包中的模块?

我尝试了几种方法,比如简单地使用import subpackagefrom subpackage import function,但它们都会导致ModuleNotFoundError: No module named 'subpackage'。

from . import subpackage没有错误消息,但我不知道如何访问该模块。


这应该可以正常工作。当您使用 from subpackage import function 时,您收到的错误消息是什么? - lllrnr101
关于如何访问,您可以在单独的一行上执行 subpackage.function() 来调用特定函数。 - astrochun
2个回答

2

我通过使用以下方法解决了这个问题:

from mypackage.subpackage import function 

1
显式总比隐式更好。 - astrochun

0

只需使用

from subpackage import function

你可能不在mypackage目录下


谢谢您的回答,但是当我在file.py中键入“from subpackage import function”时,我收到了以下错误信息:ModuleNotFoundError: No module named 'subpackage'。 - StrangeGirlMurph
你必须从“mypackage”目录运行“file.py”。 - Kamil Kozioł
1
为了更加明确,我建议使用 from .subpackage import function - astrochun

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