将更改推送到用Python编写的程序的最佳方法是什么?我有一个用Python编写的软件,该软件会定期更新。最好的方法是什么?所有机器都将安装Windows 7。
也请原谅我的问题含糊。这是我第一次必须执行更新程序。随意提及您希望我添加的细节。
如果您尚未将程序与InnoSetup打包在一起,强烈建议您切换到该程序,因为它具有简化此类操作的便利。您可以在InnoSetup脚本中指定任何特殊情况,例如如果文件已经存在(即,如果您有任何内部配置文件或类似的东西)不应该更新的文件。
[下一步,要允许客户端计算机查找应用程序的新版本,请在公共Web服务器上保留一个非常小的文件,该文件应具有当前版本的版本号以及最新版本的安装程序exe的URL。为了使此文件有用,每当您发布程序的较新版本时,都必须更新此文件以及InnoSetup脚本中的版本号以及程序中的某种APP_VERSION常量。
然后,您需要自己处理更新程序的这些部分:
更新脚本将等待原始进程完全终止(执行此操作的最简单方法是将原始进程的PID作为命令行参数传入,并每隔一秒钟左右就有更新脚本send a query signal 0 to that process直到消失。 )然后可以在后台静默运行安装程序,也许同时向用户显示“请稍候...”对话框。一旦安装程序完成并在返回代码中报告成功,更新程序就可以重新启动程序。
取决于您的应用程序的大小,这比使用git或其他SCM的方法更浪费带宽。使用此方法进行的每次更新都涉及为该应用程序的最新版本下载整个安装程序,而SCM仅下载已更改的文件。但是,它的优点是,除了常规的Web服务器之外,它不需要特殊的服务器功能,并且不需要在用户计算机上特殊安装SCM客户端。
另外,InnoSetup通常很酷。 :-)
我建议使用诸如git或subversion之类的源代码控制程序。另外,如果每个人都可以看到代码,则可以将代码发布在github上,任何人都可以从中获取代码。您可以将它设为私有,但您需要付费,并且所有用户还必须创建一个github帐户并使用git install进行设置。
如果使用源代码控制程序,其他人将不得不通过运行命令来手动拉出编辑,但是您可以制作一个脚本pr批处理文件来执行此操作,并使其在启动时或定期运行。] >
请注意,如果要执行此操作,则必须将代码放在具有SSH支持的服务器上,并设置git。如果您不想完成所有服务器设置,我建议使用github。
git- http://git-scm.com/(对于Windows版本,请下载并选择msysGit)
github-https://github.com/
对于那些研究过时的东西的人,我只是在研究如何创建可以远程更新的python应用程序(尽管不限于Windows,如OP)。