包其实本质上就是一个文件夹,将一些相关联的模块组合在一起。但是如果一个文件夹要让Python识别为一个包,则必须在这个文件夹中创建一个叫做__init__.py的文件。一个文件夹中只有拥有了__init__.py这个文件,才能被视为一个包。
在同一个包中的模块如果要互相导入,则只能通过相对的方式进行导入,即:from . import xxx

 

__all__

  1. 如果是在模块中写了这个变量,将控制from 模块名字 import *的行为。
  2. 如果在__init__.py文件中有这个变量,那么它将控制着from 包 import *的行为。


https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html