可以下载自己的Python Web应用程序

时间:2013-02-11 17:17:43

标签: python setuptools

我正在编写一个小型网络应用程序,我希望能够自行下载。理想的解决方案是让用户能够“pip安装”完整的应用程序,但应用程序的用户将能够下载它的一个版本以便自己使用(可能具有减少的功能或没有一些不太重要的依赖项)

我目前正在使用Bottle,因为我希望尽可能保持一切尽可能接近标准库。用户可以使用不同的平台或Python版本,这是最小化额外模块使用的其他原因。 (虽然无论平台如何,我都假设2.7或3.3将被使用。)

我目前的想法是让应用程序使用__file__或类似的并自行压缩。它也可以使用setuptools / distribute并自行调用sdist。然后,用户可以执行zip文件,或使用源代码分发安装应用程序。 (理想情况下,我想提供这两个选项)。

该应用程序将包括积极的导入检查以回退到可用的模块,而Bottle是唯一的要求(并且将包含在下载的文件中)。

有人能想出一种提供此功能的强大方法吗?

更新:无法保证应用的用户始终可以访问互联网,因此需要能够从之前安装过的应用下载某个版本的应用。也不能假设Python体验,因此让用户运行python -m myApp.zip来运行自己的版本。

更新II:由于无法保证python体验的水平,我希望用户能够以最简单的方式获得应用程序的大部分工作版本。然后,有经验的用户可以通过安装他们自己选择的附加模块来自由地“升级”应用程序。其中绝大多数是用于托管应用程序的不同服务器(CherryPy,Twisted等),因此不会严格视为依赖,而是“很高兴”。

更新III:基于下面的答案,我将研究基于PyPI / buildout的解决方案,但仍然对上述方法是否有特定解决方案感兴趣。

1 个答案:

答案 0 :(得分:3)

只需打包您的应用并将其放在PyPI上。试图自动打包在服务器上运行的代码似乎过度设计。然后你可以让人们使用pip来安装你的应用程序。在您的应用中,提供指向PyPI页面的链接。

然后你也可以在setup.py中添加依赖项,pip将为你安装它们。您似乎正在尝试构建自己的包装基础架构,但不必这样做。使用那里的东西。