模块
模块实质上就是一个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
导入即可.
第一步:创建代码和文件夹
mytest目录下创建代码__init__.py
def 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
语法有误,继续修改......
修改后:
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
打包前:
打包后:
第三步:安装install
python setup.py install
验证下是否安装成功:
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(包的绝对路径)
参考
Python的模块引用和查找路径
Python学习笔记十_模块、第三方模块安装、模块导入
(转)为Python添加默认模块搜索路径
第三章:python项目的结构和包的创建
导入他人写的Python包&创建自己的Python包
如何创建自己的python包
如何将自己的Python程序打包--setuptools详解
Python环境变量PYTHONPATH设置、导入第三方模块