如何使用setuptools / distutils触发后期构建

时间:2009-09-14 13:57:33

标签: python setuptools distutils py2app

我正在使用py2app / setuptools构建应用程序,所以一旦创建应用程序包,我想对dist文件夹采取一些操作,例如创建安装程序/上传它。

有办法吗?我找到了一些安装后的解决方案但没有后期构建

或者我可以从我自己的脚本中调用'python setup.py py2app'并执行此操作,但如果可以在setup.py中完成它会更好

3 个答案:

答案 0 :(得分:4)

responded to a similar question yesterday关于 distutils.core.Command 的子类化。

它的核心是,通过这样做,您可以精确控制准备过程的每个阶段的行为,并能够创建自己的命令,可以做任何你能想到的事情。

请查看该回复,因为我认为它会帮助您。

答案 1 :(得分:0)

使用setuptools或distutils可能有办法做到这一点,但它们很可能是非常hackish。如果您想要执行以下操作,我强烈建议您使用以下工具之一:

Paver可能是最容易移动的,因为您可能可以使用所有现有的setup.py文件。

答案 2 :(得分:0)

你能说清楚你想做什么吗?

  

对dist文件夹采取一些操作,例如创建安装程序/上传它。

当您说创建安装程序时,您的意思是为程序包构建分发版吗? 当你说上传时,你的意思是上传到pypi?或其他地方?

  

我找到了一些安装后的解决方案,但没有发布后期

这些是py2app挂钩/回调吗?

  

python setup.py py2app

这不是如何使用distutils的惯例。通常是python setup.py install

答案:

  

py2app target是一个dist文件夹,我想用我的安装脚本打包并上传到我的网站

编辑:

因此,您创建了一个使用distutils和setup.py的包。

当你运行setup.py时,它会为这个文件创建发行版,然后将它们放在/ dist文件夹中。

现在您要将构建的文件上传到您的网站。

为此,您需要一个不同的工具。类似于fabric

您可以使用fabric创建一个脚本来执行build命令,然后将构建的文件上传到您的服务器。