安装setuptools,创建简单的包
1)准备setup.py文件
/yaowl # mkdir demo
/yaowl # cd demo/
/yaowl/demo # vim setup.py
/yaowl/demo # ll
-rw-r----- 1 root root 125 Sep 15 17:28 setup.py
/yaowl/demo # cat setup.py
from setuptools import setup, find_packages
setup(
name = "demo",
version = "0.1",
packages = find_packages(),
)
2)准备代码
/yaowl/demo # mkdir demo
/yaowl/demo # cd demo
/yaowl/demo/demo # vim __init__.py
/yaowl/demo # cat demo/__init__.py
#!/usr/bin/env python
#-*- coding:utf-8 -*-
def test():
print "hello world!"
if __name__ == '__main__':
test()
3)打包生成egg(zip文件),
/yaowl/demo # python setup.py bdist_egg
4)安装
/yaowl/demo # python setup.py install
running install
running bdist_egg
running egg_info
writing demo.egg-info/PKG-INFO
writing top-level names to demo.egg-info/top_level.txt
writing dependency_links to demo.egg-info/dependency_links.txt
reading manifest file 'demo.egg-info/SOURCES.txt'
writing manifest file 'demo.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/demo
copying build/lib/demo/__init__.py -> build/bdist.linux-x86_64/egg/demo
byte-compiling build/bdist.linux-x86_64/egg/demo/__init__.py to __init__.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying demo.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying demo.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying demo.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying demo.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
creating 'dist/demo-0.1-py2.7.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing demo-0.1-py2.7.egg
Copying demo-0.1-py2.7.egg to /usr/lib/python2.7/site-packages
Adding demo 0.1 to easy-install.pth file
Installed /usr/lib/python2.7/site-packages/demo-0.1-py2.7.egg
Processing dependencies for demo==0.1
Finished processing dependencies for demo==0.1
/yaowl/demo # python
Python 2.7.5 (default, May 21 2017, 02:26:50)
[GCC 4.8.3 20140911 (EulerOS 4.8.3-10.h1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import demo
>>> demo.test()
hello world!
>>>
5)打包生成tar.gz
/yaowl/demo # python setup.py sdist
/yaowl/demo/dist # tar xzvf demo-0.1.tar.gz
demo-0.1/
demo-0.1/demo.egg-info/
demo-0.1/demo.egg-info/PKG-INFO
demo-0.1/demo.egg-info/top_level.txt
demo-0.1/demo.egg-info/dependency_links.txt
demo-0.1/demo.egg-info/SOURCES.txt
demo-0.1/PKG-INFO
demo-0.1/setup.cfg
demo-0.1/setup.py
demo-0.1/demo/
demo-0.1/demo/__init__.py
6)打包生成rpm包
/yaowl/demo # python setup.py bdist_rpm
7)打包生成exe
python setup.py bdist_wininst生成一个exe文件
8)指定生成的格式
python setup.py sdist --formats=gztar***
9)egg包的安装
easy_install **.egg