刚接触setuptools时为之困惑了一段时间,以为只是一个帮助安装的工具而已。使用之后,才感觉有点类似Java里面的ant,maven。比如下载所需要的包,打包,发布,单元测试等。对于setuptools的介绍资料很多,我也是借助这些资料慢慢对setuptools有了一定的了解。但具体编码的貌似很少,我就写点吧,由浅入深。
具体的安装等可以看这篇文章介绍得很详细:http://www.cnblogs.com/itech/archive/2011/02/13/1953268.html我这里简单的使用介绍也是摘自里面。
一.简单的使用:
直接新建个python脚本:setup_simple.py,内容如下:
'''
Created on Aug 23, 2012
@author: guoyun
'''
from setuptools import setup
setup()
运行命令:python setup_simple.py bdist_egg
会发现在你的工程目录下多了build,dist以及UNKNOWN.egg-info这三个目录
二.复杂的使用
1.实现类似ant clean的清理命令:
新建Python脚本,setup_clean.py,代码如下:
'''
Created on Aug 23, 2012
@author: guoyun
'''
import sys
import os
import shutil
from setuptools import setup
def main():
if len(sys.argv) == 2 and sys.argv[1]=='clean':
#remove .pyc files
for (dirpath, dirnames, filenames) in os.walk('.'):
for filename in filenames:
filepath = os.path.join(dirpath, filename)
if filepath.endswith('.pyc'):
os.remove(filepath)
#remove dist dir
if os.path.exists('dist'):
shutil.rmtree('dist')
#remove dist dir
if os.path.exists('build'):
shutil.rmtree('build')
#remove *.egg-info
if os.path.exists('UNKNOWN.egg-info'):
shutil.rmtree('UNKNOWN.egg-info')
if __name__ == '__main__':
print 'arguments:',sys.argv
main()
运行命令:python setup_clean.py clean,会发现你工程目录下刚才通过python setup_simple bdist_egg所创建的build,dist,UNKNOW.egg-info目录以及*.pyc文件都不存在了。
2.打造自己的setup
更多技术文章、感悟、分享、勾搭,请用微信扫描: