image.png
模块
模块实质上就是一个python文件。
它是用来组织代码的,文件名其实就是模块名.
例如hello.py hello就是模块的名称.
包
包(package),本质来说就是一个文件夹,但是其中有一个init.py文件。
包是从逻辑上来组织模块的,也就是说它是用来存放模块的,如果想导入其他目录下的模块,那么这个目录必须是一个包才可以导入。
使用第三方的包的方法
一般情况下使用pip安装第三方包:安装新包: pip install xxxx
卸载已安装的包:pip uninstall xxxx
更新已安装的包: easy_install install xxxx -U
查看已安装的包: pip list
python项目
一个完整的结构需要满足以下的条件:拥有一个在版本管理之下的源码目录
程序信息在setup.py中定义
在一个virtualenv环境中运行
如何制作自己的安装包
如何让自己写的包能被人当作第三方库安装?
首先了解下什么是setuptools?什么是setuptools
setuptools是Python distutils增强版的集合,它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的。用户在使用setuptools创建的包时,并不需要已安装setuptools,只要一个启动模块即可。
使用时使用import setuptools导入即可.
image.png
image.png第一步:创建代码和文件夹
mytest目录下创建代码__init__.pydef add(x,y):
return x+y
def main():
pass
if __name__ == '__main__':
main()第二步:创建setup.py
mytest文件夹同级目录下创建一个setup.py:from setuptools import setup
setup(
name = 'mytest',
version = '0.1',
author = 'BYManbu',
packages = ['mytest'],
)
使用命令检测setup.py是否语法正确:
$ python setup.py check
image.png
语法有误,继续修改......
修改后:
from setuptools import setup
setup(
name = 'mytest',
version = '0.1',
author = 'BYManbu',
author_email = 'bymanbu@126.com',
url = 'https://pypi.org/help/',
packages = ['mytest'],
)
ok, 这次顺利通过检测.O(∩_∩)O
打包目录
使用命令进行打包:python setup.py bdist_egg
打包前:
image.png
打包后:
image.png第三步:安装installpython setup.py install
验证下是否安装成功:
image.png
ok, 这样就可以在本地使用了.O(∩_∩)O
当然也可以上传PyPI让其他人使用.
本地不安装使用包
对于python程序来说,有个环境变量sys.path的概念.
sys.path中记录这python使用包时候搜索的路径
可以打印sys.path查看:
其中/usr/local/lib/python2.7/dist-packages/mytest-0.1-py2.7.egg就是刚才我们安装的自定义库.O(∩_∩)O
如何使用未安装的库?
使用本地的包(不经过安装的),需要执行如下步骤:import sys
添加sys.path.append(包的绝对路径)
参考