模块与包
模块
模块就是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块
模块是非常简单的Python文件,单个Python文件就是一个模块,两个文件就是两个模块。
导入方式
直接导入(全部导入)
import xx
from xx import *
重命名
import xx as yy
from xx import yyyyyyyyy1 as y
部分导入
import xx.y1, xx.y2
from xx import y1, y2
定位模块
导入一个模块,Python解析器对模块位置的搜索顺序是:
- 当前目录
- 如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。
- 如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/
- 模块搜索路径存储在system模块的sys.path变量中。
包
包将有联系的模块组织在一起,有效避免模块名称冲突问题,让应用组织结构更加清晰。
一个普通的python应用程序目录结构:
注:
Python包比普通的目录多一个__init__.py
文件
__all__
在__init__.py
中定义 __all__
变量,该变量为一列表, 文件中出现该变量,则只会导入变量种指定的内容
__file__
文件当前的位置
__doc__
一般而言,是对函数/方法/模块所实现功能的简单描述。但当指向具体对象时,会显示此对象从属的类型的构造函数的文档字符串。
eg:
# encoding=utf-8
"""
Date:2019-06-03 14:41
User:LiYu
Email:liyu_5498@163.com
"""
def a():
"""
这是函数的简单描述
"""
pass
print(__doc__)
print(a.__doc__)
print(__file__)
模块制作与发布
测试代码
python在执行一个文件时有个变量 __name__
可以根据__name__
变量的结果能够判断出,是直接执行的python脚本还是被引入执行的,从而能够有选择性的执行测试代码.
if __name__=='__main__':
test()
准备发布
-
为模块文件创建一个文件夹,并将模块文件复制到这个文件中(一般,文件夹的名字和模块的名字一样)
-
在文件夹中创建一个名为setup.py的文件,内容如下:
from distutils.core import setup setup( name='模块的名称', version='模块的版本', author='作者名', author_email='作者邮箱地址', url='官方网址', description='模块介绍' py_modules=[想要发布的模块文件名,不需要.py] )
构建发布 & 发布预览
1.构建模块并一个发布文件
python setup.py build
python setup.py sdist
2.将发布安装到你的Python本地副本中
python setup.py install
3.发布预览
pypi发布
1.注册PyPI网站 http://pypi.python.org
2.向PyPI上传代码
python setup.py register
python setup.py sdist upload
模块安装与使用
找到模块的压缩包
解压
进入文件夹
执行命令
python setup.py install