2011-08-25 61 views
1

setup.py可以包含任何形式的Python代码除了调用功能设置(),我用下面的代码片段进行了测试:setup.py,设置()加上一些其他的东西

from setuptools import setup 

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

print "After setup()" 

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

背景是这样的:我正在编写一个Python程序包,它作为一个独立的程序工作,并不是要导入的。在不使用的情况下,我几乎找到了处理安装细节的几乎所有东西,例如将脚本复制到系统路径,复制额外的数据文件,创建目录等等。但是仍然有一些程序完全不在disutils的范围内。系统调用。

我是不是应该把这个额外的代码,我需要到setup.py

任何意见或进一步建议表示赞赏。

谢谢先进。

+0

您需要执行哪些附加步骤? –

+0

基本上有些系统调用来检查是否安装了某些应用程序。 – romeroqj

回答

1

此最近的一篇博客应该回答你的大部分问题:

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

很多工作正在进行,但尚未公布,关于在Python世界包装。

+0

提示#2真的很有帮助。由于这不是一个Python模块,我正在考虑放弃disutils,只是写一个安装脚本来完成所有的批量工作。你对此有何想法? – romeroqj

+1

如果你不打算在pypi.python.org发布软件包,请使用适合你的方法,并解雇setuptools,distutils等。 –

0

如果在执行setup()期间发生错误,程序将停止并且不会执行进一步的代码。但是你可能还想要执行一些额外的代码。 在这种情况下,使用:

from setuptools import setup 

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

finally: 
    print "After setup()"