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 ?
感谢任何意见或建议。
先谢谢。
答案 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()"