很多时候我们需要自己开发一些简易的python包来满足个人需要。轻量级python包可能只包含少数功能,并且通常我们希望能够像调用公共包一样调用自定义的包。这样的一个包的开发流程如下。
一个包可以看做是一款软件。包=目录,模块=py文档,具体的功能如函数和类等都写在模块中。包内可以有子包。
每一个包下面必须有一个__init__.py模块,描述包自己。最简单的包就只有一个__init__模块,所有的功能功能都写在里面。如果功能被设计分散到不同的模块中,则__init__.py可以为空文档。
建立包的内容调用 需要注意调用自定义包的内部其他模块的功能时,最好使用相对路径调用。
文档 在开头以’’’…’’’写入py文档。
本地使用包
选择一 将包放到现有的python搜索路径中
如果仅仅是自己使用,则可以将自定义包到python的搜索路径中。关于python搜索路径可以参考python的搜索路径与包(package)。具体的选择可以是:直接将包放在需要调用它的py文档同一目录下;
适合临时包的调用
本地用户的库中(注意使用正确的python版本号):~/.local/lib/python3.6/site-packages
比较正式!自己的包与其他包一样,也是正式安装的包了!
选择二 修改python搜索路径
修改环境变量PYTHONPATH,加上包所在的目录。
选择三 添加pth快捷方式
在site-packages添加一个路径文档,如mypkpath.pth,必须以.pth为后缀,写上你要加入的模块文档所在的目录名称就是了。注:pth文档名和包没有关系。
选择四 通过setup.py打包安装
一个setup.py的基本内容:
1
2
3
4
5
6
7
8
9
10
11from setuptools import setup
setup(
name= 'firsthirdpackage',
version= '0.0.1',
packages = ['firsthirdpackage'],
author='xieyanke',
license='Apache',
url='http://pycn.me'
)
将其放在自定义包同一目录下(注意不是在包内),选择一种打包格式打包:
1
2
3
4.tar.gz/.zip格式
python setup.py sdist
#.egg格式
$python setup.py bdist_egg
之后就可以安装:
1$python setup.py install
提交到pypi公共平台
如果想将自己的包提交到 https://pypi.python.org 供大家通过pip install xxx使用:注册 pypi
提交自己的包1$python setup.py register bdist upload
之后选择1,输入用户名、密码即可完成提交。安装pypi中自己提交的包1$pip install xxx