作为Python的打包和分发工具,steuptools是十分易用的,而将程序打包之后,可以更方便的进行部署和分发,也可以上传到Pypi。这里结合一个例子,记录一下自己在使用打包过程的笔记和遇到的问题。
只需写一个简短的setup.py安装文件,就可以开始了你的Python应用打包。
Setup.py
假设要打包的程序为setup-demo
,则当前目录结构如下:
1 | setup-demo/ |
现在编写最基础的setup.py
1 | from setuptools import setup |
打包
有了上面的 setup.py 文件,我们就可以打出各种安装包:
- 创建egg包
1 | $ python setup.py bdist_egg |
该命令会在当前目录下的dist
目录内创建一个egg
文件,名为setup_demo-1.0-py3.6.egg
。文件名格式就是“应用名-版本号-Python版本.egg”,同时你会注意到,当前目录多了build
和``setup_demo.egg-info`子目录来存放打包的中间结果。
- 创建tar.gz包
1 | $ python setup.py sdist |
同上例类似,只不过创建的文件类型是tar.gz
,文件名为setup-demo-1.0.linux-x86_64.tar.gz
。
- 创建wheel包
官方推荐的打包方式使用 wheel 打包,首先要安装 wheel:
1 | $ pip install wheel |
然后使用 bdist_wheel 打包:
1 | $ python setup.py bdist_wheel |
打包完成之后,可以使用 pip 安装到本地 Python 的 site-packages 目录。例如pip install dist/setup_demo-1.0-py3-none-any.whl
,然后现在和其他使用 pip 安装的三方库一样使用了。
安装
- 安装应用
1 | $ python setup.py install |
该命令会将当前的Python应用安装到当前Python环境的site-packages
目录下,这样其他程序就可以像导入标准库一样导入该应用的代码了。
- 开发方式安装
1 | $ python setup.py develop |
或
1 | $ pip install -e . |