Python的egg包
1、背景
查看flower的源码,首先看到flower的主程序如下:
#!/usr/local/sinasrv2/bin/python2.7 # EASY-INSTALL-ENTRY-SCRIPT: ‘flower==0.7.3‘,‘console_scripts‘,‘flower‘ __requires__ = ‘flower==0.7.3‘ import sys from pkg_resources import load_entry_point if __name__ == ‘__main__‘: sys.exit( load_entry_point(‘flower==0.7.3‘, ‘console_scripts‘, ‘flower‘)()
load_entry_point,它的信息来源是entry_points.txt
entry_points.txt来源呢?
setup.py里面有entry_points 信息,会根据这些信息生成egg info目录,里面有entry_points.txt文件, 里面的内容就是setup.py里的entry_points信息
setup( name=‘flower‘, version=get_package_version(), description=‘Celery Flower‘, long_description=open(‘README.rst‘).read(), author=‘Mher Movsisyan‘, author_email=‘[email protected]‘, url=‘https://github.com/mher/flower‘, license=‘BSD‘, classifiers=classifiers, packages=find_packages(exclude=[‘tests‘, ‘tests.*‘]), install_requires=install_requires, test_suite="tests", tests_require=get_requirements(‘test.txt‘), package_data={‘flower‘: [‘templates/*‘, ‘static/**/*‘, ‘static/*.*‘]}, entry_points={ ‘console_scripts‘: [ ‘flower = flower.__main__:main‘, ], ‘celery.commands‘: [ ‘flower = flower.command:FlowerCommand‘, ], }, )
然后将封装一个python脚本
说明flower脚本实际调用的是:
两种启动方式
[celery.commands] flower = flower.command:FlowerCommand [console_scripts] flower = flower.__main__:main
2、如何制作一个egg包以及对应的setup.py如何写呢?
3、参考资料
1、http://www.cnblogs.com/itech/archive/2011/02/13/1953268.html
2、http://zhiwei.li/text/2011/06/load_entry_point%E5%92%8Csetup-egg/
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。