setup.py
除了调用函数setup()
之外,还可以包含任何类型的setup()
代码,我用以下代码片段对其进行了测试:
from setuptools import setup
setup(name='MyPackage',
packages=['mypackage'])
print "After setup()"
print
语句是正常执行的。我对此进行了测试,因为命令(python setup.py install
)使我产生怀疑。我是否应该无畏地将setup.py
作为一个任意脚本来处理我所有的安装需求?
背景是这样的:我正在编写一个Python包,它作为一个独立的程序工作,它并不打算被导入。在distutils
中,我发现了处理安装细节所需的几乎所有东西,比如将脚本复制到系统路径、复制额外的数据文件、创建目录等等。但是仍然有一些超出distutils
范围的过程,例如系统调用。
我应该把我需要的额外代码放到setup.py
中吗?
发布于 2011-08-25 22:21:47
最近这篇博客文章应该回答你的大部分问题:
http://tarekziade.wordpress.com/2011/08/19/5-tips-for-packaging-your-python-projects/
关于Python世界中的打包,有很多正在进行中的工作,但还没有可用。
发布于 2011-08-26 01:14:09
您可能想看看http://paver.github.com/paver/,它可以轻松地用一些特定于项目的任务扩展distutils。
发布于 2014-09-17 20:17:24
如果在安装程序()的执行过程中发生错误,程序将停止,不会执行进一步的代码。但是您可能仍然希望执行一些额外的代码。在这种情况下,使用:
from setuptools import setup
try:
setup(name='MyPackage',
packages=['mypackage'])
finally:
print "After setup()"
https://stackoverflow.com/questions/7197723
复制相似问题