Chapter14 python进阶——模块和包

一、模块和包

(一)查看导入模块的绝对路径

 

(二)查看模块文件中的函数或类

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

 

阅读更多

没有更多推荐了,返回首页