Python—为什么在包中导入*不';不行?

Python—为什么在包中导入*不';不行?,python,python-import,grpc,python-packaging,Python,Python Import,Grpc,Python Packaging,假设这个包: mylibrary/ ... setup.py service_stubs/ __init__.py service_pb2.py service_pb2_grpc.py 我希望当我导入子包时,包上的所有模块都可用。 试图输入我的\uuuu init\uuuuu.py: from . import * 然后像这样使用: import service_stubs service_stubs.service_pb2.s

假设这个包:

  mylibrary/
    ...
    setup.py
    service_stubs/
      __init__.py
      service_pb2.py
      service_pb2_grpc.py
我希望当我导入子包时,包上的所有模块都可用。 试图输入我的
\uuuu init\uuuuu.py

from . import *
然后像这样使用:

import service_stubs
service_stubs.service_pb2.something_inside_the_module
但是,
service\u pb2
module not found表示,这不起作用。我必须
import service\u stubs.service\u pb2

如果我将
\uuuu init\uuuuu.py
更改为:

from . import service_pb2
那么它确实工作得很好

但是,我不想显式地导入包中的每个模块,因为很多模块都会在那里

为什么
来自。导入*
不会导出包上的名称,方法与从导出的方式相同。导入某些内容


还有什么简单的方法可以解决这个问题呢?

你们很多人发现另一个帖子非常有用:没有看到对差异的解释