是否可以动态升级Python包?

时间:2013-04-03 13:23:56

标签: python installer automatic-updates

我维护着一个内部Python软件包,该软件包被公司中一些非技术人员使用。由于他们的需求(或者更确切地说,他们的需求)几乎每天都在变化,我必须经常更新库,并且我经常为他们创建新的安装程序。

lib提供对自定义内部数据库的高级访问。此时,我知道我可以将lib版本与查询请求一起发送,并向用户显示一条消息,其结果是他们需要安装更新。

然而,由于这些人似乎认为花几秒钟点击.exe文件并点击安装程序上的“下一步”按钮需要太长时间,我会被要求查看是否有办法在执行“导入X”调用时自动更新库。

我从来没有遇到过这样的请求,我想如果可能的话,最受欢迎的图书馆会提供这个选项。但我以前经常犯错。有没有人成功完成过这个?

2 个答案:

答案 0 :(得分:2)

如果这仅仅是一个评论,我道歉 但我认为有几种选择。而且我必须同意Cartroo,reload()函数可能就足够了。

this (Charming Python: Reloading on the fly)网站上有一篇很棒的文章。我不完全确定这是否正是您所寻找的,但文章中的示例似乎非常符合您的需求。

  

让我们为本文绘制一个场景:假设你想运行一个   在本地计算机上进行处理,但程序逻辑的一部分仍存在   别的地方。具体来说,让我们假设这个程序逻辑是   不时更新,当你运行你的过程时,你会   喜欢使用最新的程序逻辑。有很多   解决刚才所述要求的方法;本文   引导你了解其中几个。

答案 1 :(得分:1)

让“import X”调用在包装器库中运行代码。导入时间的代码将检查数据库中是否有新版本的库,如果已更改则下载。然后它可以依次导入下载的库或导入现有的库。在冻结的代码上可能存在此问题,因此您可能必须明确地评估新模块。

修改 这不一定需要在另一个模块中完成。它可能只是一个函数调用。