可以下载

2024-04-19 12:06:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个小的网络应用程序,我想包括下载自己的能力。理想的解决方案是,用户可以“pip安装”完整的应用程序,但应用程序的用户可以下载一个版本的应用程序供自己使用(可能功能减少或没有一些不太重要的依赖关系)。你知道吗

我目前使用瓶子,因为我想保持一切尽可能接近标准图书馆。用户可能在不同的平台或Python版本上,这也是减少额外模块使用的其他原因。(尽管我假设2.7或3.3将在不考虑平台的情况下使用)。你知道吗

我目前的想法是让应用程序使用__file__或类似的东西,并将自己压缩。它还可以使用setuptools/distribute并在自身上调用sdist。然后用户可以执行zip文件,或者使用源代码分发版安装应用程序。(理想情况下,我想提供这两个选项)。你知道吗

该应用程序将包括积极的导入检查,以回退到可用的模块,瓶子是唯一的要求(并将包括在下载的文件)。你知道吗

有人能想出一个健壮的方法来提供这个功能吗?你知道吗

更新:该应用程序的用户不能保证在任何时候都可以访问互联网,因此需要能够从以前安装过该应用程序的人那里下载该应用程序的版本。Python体验也不能假定,因此让用户运行python -m myApp.zip来运行自己的版本。你知道吗

更新二:由于python的体验水平也无法保证,我希望用户能够以最简单的方式获得最有效的应用程序版本。然后,有经验的用户可以通过安装自己选择的附加模块来免费“升级”应用程序。其中绝大多数都是不同的服务器(CherryPy、Twisted等)来承载应用程序,因此严格来说,这些服务器不算依赖关系,而是“很好拥有”。你知道吗

更新三:基于下面的答案,我将研究一个基于PyPI/构建的解决方案,但仍然对上述方法是否有特定的解决方案感兴趣。你知道吗


Tags: 模块文件方法用户功能版本应用程序瓶子
1条回答
网友
1楼 · 发布于 2024-04-19 12:06:21

把你的应用打包放到PyPI上就行了。试图自动打包服务器上运行的代码似乎设计过头了。然后你可以让人们使用pip来安装你的应用程序。在你的应用程序中,提供一个到PyPI页面的链接。你知道吗

然后还可以在设置.py,pip将为您安装它们。看起来您正在尝试构建自己的打包基础设施,但不必这样做。利用外面的东西。你知道吗

相关问题 更多 >