setuptools是 Python Enterprise Application Kit(PEAK)的一个副项目,它 是一组Python的 distutilsde工具的增强工具(适用于 Python 2.3.5 以上的版本,64 位平台则适用于 Python 2.4 以上的版本),可以让程序员更方便的创建和发布 Python 包,特别是那些对其它包具有依赖性的状况。
借助setup.py安装python包
编程过程中,我们经常使用到第三方的python包,我们需要把该python包安装到我们的系统中,一般情况下,我们下载的python包都包含一个名为setup.py的文件,借助于该文件我们可以很方便的安装该python包。
下面列出setup.py文件的常见使用方法:
- python setup.py build
借助于该命令,我们可以编译python包
- python setup.py install
借助于该命令,我们可以安装python包
- python setup.py sdist
借助于该命令,我们可以制作分发包供其他人使用,之行完该命令后会在包内多出名为dist的文件夹,里面包含相应的压缩包文件
- python setup.py bdist_wininst
借助于该命令,我们可以制作windows下的分发包,生成相应的.exe文件,使用者直接点击安装即可。
Note:
使用setup.py进行安装python包时,首先确定你的系统中安装了setuptools,否则会出现问题。较新的python版本比如python 2.7.10安装时已经把setuptools和pip安装到系统中,就不用我们重新安装了。
借助setup.py发布python包
由上一小节可知,我们可以借助python setup.py sdist以及python setup.py bdist_wininst命令发布相应系统的下的python安装包。下面介绍关于setup.py文件的编写。
setup.py中主要执行一个 setup函数,该函数中大部分是描述性东西,最主要的是packages参数,列出所有的package,可以用自带的find_packages来动态获取package。所以setup.py文件的编写实际是很简单的。
示例:
from setuptools import setup, find_packages
setup(
name="mytest",
version="0.10",
description="My test module",
author="Robin Hood",
url="",
license="LGPL",
packages= find_packages(),
scripts=["scripts/test.py"],
)
mytest.py文件:
import sys
def get():
return sys.path
scripts/test.py文件:
import os
print os.environ.keys()
setup中的scripts表示将该文件放到 Python的Scripts目录下,可以直接用。OK,简单的安装成功,可以运行所列举的命令生成安装包,或者安装该python包。