setup.py,setup()以及其他一些东西

时间:2011-08-25 21:56:48

标签: python scripting setup.py

除了调用函数setup()之外,

setup.py 可以包含任何类型的Python代码,我使用以下代码段对其进行了测试:

from setuptools import setup

setup(name='MyPackage',
      packages=['mypackage'])

print "After setup()"

print 语句正常执行。我测试了这个,因为命令( python setup.py install )让我怀疑:D。无论如何......我是否应该无畏地将 setup.py 视为处理我所有安装需求的任意脚本?

背景是这样的:我正在编写一个作为独立程序运行的Python包,它不打算导入。在disutils中,我发现几乎所有我需要处理安装细节的东西,比如将脚本复制到系统路径,复制额外的数据文件,创建目录等等。但仍然有一些程序超出了disutils的范围,例如:系统调用。

我是否应该将我需要的额外代码放入 setup.py

感谢任何意见或建议。

先谢谢。

3 个答案:

答案 0 :(得分:1)

最近的博客文章应该回答您的大部分问题:

http://tarekziade.wordpress.com/2011/08/19/5-tips-for-packaging-your-python-projects/

关于Python世界中的打包,有很多正在进行但尚未提供的工作。

答案 1 :(得分:0)

您可能需要查看http://paver.github.com/paver/,这样可以轻松地扩展具有项目特定任务的distutils。

答案 2 :(得分:0)

如果在执行setup()期间发生错误,程序将停止,不再执行任何代码。但您可能仍希望执行一些额外的代码。 在这种情况下,请使用:

from setuptools import setup

try:
    setup(name='MyPackage',
          packages=['mypackage'])

finally:
    print "After setup()"