一、模块和包
(一)查看导入模块的绝对路径
(二)查看模块文件中的函数或类
vim /usr/lib/python3.5/random.py #vim编辑文档
/randint #搜索randint函数
N #上一个匹配文件
n #下一个匹配文件
(三)模块测试
if __name__ == '__main__': #判断是否是由python解释器主动执行,通常用于本模块测试 pass
(四)限制调用
python2下的限制调用,python3中不再建议使用
__all__ = [‘hanshu1’,’hanshu2’,……] #限制了本模块中可供调用的函数
from test import * #必须采用这种调用方法与__all__搭配
(五)python中的包
包本质上就是一个目录,将两个模块放入一个包就是将两个.py文件移到一个目录
导入包或者文件时,机器的搜索顺序是:当前目录-->系统(home)目录
导入方法:
①import 文件夹.模块 (适用于python3,不适用于python2)
②from 文件夹 import 模块 (适用于python3,不适用于python2)
③为兼容python2,通常会在包的目录下新建一个__init__.py文件
在该文件中写入:from . import 模块
import 文件夹
(六)导入模块的路径设置:
sys.path.append('~/hhh') #添加当前文件夹下的hhh路径 sys.path.insert(0,'~/xxx') #将当前文件夹下的xxx路径添加到第一位 sys.path.remove('~/hhh') sys.path.remove('~/xxx')
(七)查看模块内容(:q退出),以sys举例
(八)发布包
如果要发布包A,
①则先建立文件夹(包)B
②将A移动到B下
③cd B的路径
④vim setup.py
内容为:
from distutils.core import setup
setup(name=’压缩包的名字’,version=’1.0’,description=’描述’,author=’作者’,py_modules=[‘suba.aa’,’suba.bb’,’subb.cc’,’subb.dd’]
#包名·模块名
⑤cd B的路径 #确认在B的目录下
⑥python3 setup.py build #写python3建的是python3的包,python建的是python2的包
⑦python3 setup.py sdist
⑧tree一下查看,也可以再cd dist/并且ls一下
(九)安装包(接上一步)
①cp dist/xxxx.tar.gz 目标文件夹
②tar -xzvf xxxx.tar.gz
③cd xxxx
④可以tree并more PKG-INFO
⑤python3 setup.py install