模块别名
import 模块名 as 模块别名
模块别名应该用大驼峰命名法
- 别名只对当前文件有效
from…import…导入部分工具
from 模块名 import 工具名
- 导入后不需要用
模块名.
的方式,直接用工具名调用 - 如果导入的多个工具名有重复,那么后导入的会覆盖先导入的
- 可以为工具指定别名
from 模块名 import 工具名 as 别名
- 不推荐
from 模块名 import *
。因为导入所有工具后,如果工具出现重名,不好排查
重新导入包
- 程序运行过程中,导入的代码改写了,需要
reload
重新导入
In [14]: import a
In [16]: a.test()
原来的包
In [17]: from imp import reload
In [18]: reload(a) # 改写过了,需要重新导入
Out[18]: <module 'a' from '/home/wb/Desktop/a.py'>
In [19]: a.test()
改写过的包
模块的搜索顺序
- 按照
sys.path
列表的顺序搜索
In [1]: import sys
In [2]: sys.path
Out[2]:
['',
'/usr/bin',
'/usr/lib/python35.zip',
'/usr/lib/python3.5',
'/usr/lib/python3.5/plat-x86_64-linux-gnu',
'/usr/lib/python3.5/lib-dynload',
'/home/wb/.local/lib/python3.5/site-packages',
'/usr/local/lib/python3.5/dist-packages',
'/usr/lib/python3/dist-packages',
'/usr/lib/python3/dist-packages/IPython/extensions',
'/home/wb/.ipython']
- 列表的第一个元素
空字符串
表示当前路径
- 不要命名和系统模块名重名的文件
- python中的每个模块都有属性__file__,可以查看当前模块的路径
开发的每个文件都应当能被导入
- 导入文件时,没有缩进的代码会立即执行
- __name__属性:
- 当执行本文件时,__name__的值是"main"
- 当文件导入时,__name__的值是"被导入的文件的名字"
- 根据以上知识,以下代码可以防止被导入的文件的测试代码,在当前文件中执行:
# ###此代码编写在被导入的文件中###
# 定义全局变量
# 定义函数
# 定义类
def main():
# 作者编写的测试代码
pass
if __name__ == '__main__':
main()
在很多python文件中都有以上代码
包
- 可以将多个模块放入包中。import 包名可以一次导入所有模块
- 包中的__ init__.py文件列出对外界提供的模块:
from . import 模块名
from . import 模块名
...
制作发布压缩包
第一步:.建立setup.py文件
from distutils.core import setup
setup(name='Distutils',
version='1.0',
description='Python Distribution Utilities',
author='Greg Ward',
author_email='gward@python.net',
url='https://www.python.org/sigs/distutils-sig/',
packages=['distutils', 'distutils.command'],
py_modules=[]
)
第二步:
$ python3 setup.py build
第三步:生成压缩包
$ python3 setup.py sdist
- setup.py文件中各个参数的意思:
–name 包名称
–version (-V) 包版本
–author 程序的作者
–author_email 程序的作者的邮箱地址
–maintainer 维护者
–maintainer_email 维护者的邮箱地址
–url 程序的官网地址
–license 程序的授权信息
–description 程序的简单描述
–long_description 程序的详细描述
–platforms 程序适用的软件平台列表
–classifiers 程序的所属分类列表
–keywords 程序的关键字列表
–packages 需要打包的目录列表
–py_modules 需要打包的python文件列表(python模块)
–download_url 程序的下载地址
–cmdclass
–data_files 打包时需要打包的数据文件,如图片,配置文件等
–scripts 安装时需要执行的脚步列表 - setup.py打包命令:
–python setup.py build # 仅编译不安装
–python setup.py install #安装到python安装目录的lib下
–python setup.py sdist #生成压缩包(zip/tar.gz)
–python setup.py bdist_wininst #生成NT平台安装包(.exe)
–python setup.py bdist_rpm #生成rpm包安装
步骤一:解压得到的包
步骤二:进入解压得到的文件夹,安装$ tar zxvf hm_message-1.0.tar.gz
$ cd hm_message-1.0/ $ sudo python3 setup.py install