1.包是一个包含多个模块的特殊目录
2.目录下有一个特殊的文件init.py
3.包名的命名的方式和变量名一致
- 使用import 包名.模块 的方式导入
- 使用from 包名 import 模块的方式导入
- 使用from 包名 import 模块 as 别名的方式导入
- 使用from 包名.模块名 import 功能 的方式导入
要在外界使用包中的模块,需要在_init_.py中指定对外界提供的模块列表
作用: _init_.py 控制着包的导入行为
_init_.py为空的作用: 仅仅是把这个包导入,不会导入包中的模块
_init_.py文件中__all__的作用: 在 __init__.py 文件中,定义一个 __all__ 变量,它控制着 from 包名 import * 时导入的模块
可以在_init_.py文件中编写内容: 当导入时,这些语句就会被执行
- setup.py的文件
from distutils.core import setup
setup(name="", # 包名
version="1.0", # 版本信息
description="", # 描述信息
long_description="", # 完整的描述信息
author="", # 作者
author_email="", # 作者邮箱
url="", # 程序包的URL(主页)
py_modules=["",""], # distutils将操作的Python模块列表
...
)其中参数详见:https://docs.python.org/2/distutils/apiref.html
$ python3 setup.py build$ python3 setup.py sdist