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(包的绝对路径)

参考