包&模块定义
目录下有__init__.py(包的身份证) 的文件为包
图中有两个包sk,s2(s2为子包)
目录下其它的py文件为模块
图中有两个模块sk下action模块,s2下action模块
两个action中都有talk()方法
包&模块的使用
1.通过 from package import module 从package中导入 module,通过module.action 调用
# coding:utf-8
from sk import action
from sk.s2 import action as s2_action
if __name__ == '__main__':
action.talk() # sk action talk
s2_action.talk() # s2 action talk
2.通过 from module import action 从模块中导入具体内容,通过action 调用
# coding:utf-8
from sk.action import talk
from sk.s2.action import talk as s2_talk
if __name__ == '__main__':
talk() # sk action talk
s2_talk() # s2 action talk
3.from package 与 import package 都会触发包下的__init__.py
修改sk下的__init__.py
# coding:utf-8
from .s2.action import talk
# coding:utf-8
from sk import talk
import sk
if __name__ == '__main__':
'''
from sk 与 import sk 触发了 sk下的__init__.py
将sk.s2.action中的talk导入 sk包中就有了talk方法
'''
talk() # s2 action talk
sk.talk() # s2 action talk
第三方包管理
使用pip 对python包进行管理 其作用相当于php的composer,javasript的npm
pip命令 | 作用 |
---|---|
pip install package | 安装包 |
pip uninstall package | 卸载包 |
pip --version | 查看pip版本 |
pip install package==version | 安装指定版本的包 |
pip install -i 镜像源 package | 通过指定镜像源安装包 |