setup.py =============================== 刚刚学习 Python 时, 小白特别羡慕那些能够自己发布软件包的牛人们。小白多么希望自己也可以发布一个软件包呀。小白想让自己的程序也能通过:: python setup.py install 来安装模块。其他用户安装后,就可以直接使用小白的软件包了。 这个应该做呢? paste ------------------------------- 一个包里有许多文件,除了源代码,还包括setup.py文件等许多文件 一个包里可以通过模板来创建一个包,用paste! 安装 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :: easy_install PasteScript 输出一大串后,安装成功! 创建一个包 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~` :: paster create mala 然后一个一个填下来…… :: su@su:~/new$ paster create mala Selected and implied templates: PasteScript#basic_package A basic setuptools-enabled package Variables: egg: mala package: mala project: mala Enter version (Version (like 0.1)) ['']: Enter description (One-line description of the package) ['']: Enter long_description (Multi-line description (in reST)) ['']: Enter keywords (Space-separated keywords/tags) ['']: Enter author (Author name) ['']: Enter author_email (Author email) ['']: Enter url (URL of homepage) ['']: Enter license_name (License name) ['']: Enter zip_safe (True/False: if the package can be distributed as a .zip file) [False]: Creating template basic_package Creating directory ./mala Recursing into +package+ Creating ./mala/mala/ Copying __init__.py to ./mala/mala/__init__.py Copying setup.cfg to ./mala/setup.cfg Copying setup.py_tmpl to ./mala/setup.py Running /usr/bin/python setup.py egg_info 好嘞,已经生成一个目录! :: -mala -mala/ -mala.egg-info/ -setup.cfg -setup.py 再看看setup.py:: from setuptools import setup, find_packages import sys, os version = '0.1' setup(name='mala', version=version, description="", long_description="""\ """, classifiers=[], # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers keywords='', author='', author_email='', url='', license='', packages=find_packages(), include_package_data=True, zip_safe=False, install_requires=[ # -*- Extra requirements: -*- ], ], }, ) 其他都是空值,要讲的就是:: packages=find_packages() 自动查找目录下的包! 尝试安装 ---------------------------------------- :: sudo python setup.py install 再进入python交互命令:: >>import mala >> 好啊!成功了。再尝试:: >>mala.GUI() 哈哈!跳出窗口了! 添加系统命令 ------------------------------------------ 如何在终端中输入"mala"就可以跳出,而不用进入python交互命令行? 添加代码:: …… entry_points={ 'console_scripts': [ 'mala = mala:GUI', ], …… 再安装一下。 尝试 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 进入终端,输入:: $ mala 哈哈又跳出来了! 小结 ----------------------------- 小白今天用setuptool模块完成了安装功能!可以一键安装,快速调用,真是太棒了!