python setuptools

安装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

 

posted on 2017-09-15 21:19  yaoweilei  阅读(245)  评论(0编辑  收藏  举报

导航