为何我的Python包仅支持from导入,直接import无法使用?
解决Python包直接import调用的问题
你遇到的问题是因为包根目录的__init__.py文件没有显式导出hello_world模块,直接import package时,该模块不会被自动加载到包的命名空间中。
解决方法很简单:
- 找到你的包根目录下的
__init__.py文件(如果不存在就新建一个空文件) - 在
__init__.py中添加以下代码:from . import hello_world
添加后,再执行import package,就能正常通过package.hello_world.hello_world()调用函数了。
如果想进一步简化调用方式,还可以直接把函数导入到包的顶层命名空间:
from .hello_world import hello_world
这样之后你可以直接用package.hello_world()调用目标函数,不需要再嵌套一层模块名。
内容的提问来源于stack exchange,提问作者Jan
相关产品推荐
相关产品推荐

