跨平台部署和轻松安装

时间:2013-01-03 12:54:48

标签: python batch-file cross-platform py2exe scientific-computing

修改

我考虑过的一个选项但是对此不太了解for windows将批处理脚本写入:

  • 搜索Python安装,下载并安装(如果不存在)
  • 然后使用distutils安装捆绑软件包以处理依赖项。

似乎这个可以是一个相对优雅和简单的解决方案,但我不知道如何继续 - 任何想法?

原始问题

简而言之

您会针对以下情况推荐哪种方法?

  • 用于创建技术应用程序的Linux开发环境
  • 现在也部署在Windows和Mac上
  • Python中的现有代码库
  • wine不会安装Windows版本的Python
  • 没有Windows安装可用于创建虚拟Windows / mac机器的CD
  • 由于现有的代码库
  • ,移植到java会产生很大的开销
  • 客户不是技术用户,即提供标准的Python软件包还不够 - 真的需要可安装的自包含产品

背景

我正在Linux下编写技术和科学应用程序,但是还需要其中一些可以部署在Windows / MacO计算机上。

过去我经常使用Python,但我发现对于不熟悉安装python包的非技术用户来说,创建一个简单的可执行文件(使用例如py2exe)很困难,因为我无法使用wine安装要安装的Windows版本的Python。

虽然java似乎是一个不错的选择,但如果可能的话,我希望避免从Python中移植现有代码,尤其是Python也允许编写可移植代码。

我意识到我在这里试图涵盖很多基础,因此任何关于最合适的解决方案(即使不完美)的建议都将受到赞赏。

3 个答案:

答案 0 :(得分:5)

我有一个project听起来与你想要做的事情有点相似,而且我看到了一些相同的问题,因为我通常在Linux上开发并移植到Windows。这是一个Python + wxPython + NumPy + SciPy + matplotlib +各种其他软件包,我发现最好的方法是使用PyInstaller。 PyInstaller在处理第三方Python包方面做得非常出色,并且非常轻松地创建了一个EXE。

我认为如果您使用py2exe或PyInstaller,它或多或少必须在Windows上完成,因为IIRC有一些Windows库需要随身携带。也许你可以运行Windows EC2实例?根据您的应用程序的复杂程度,您可以使用Portable PythonPyPy来处理某些内容。

我之前尝试过为Windows机器箱下载Python和必需的软件包 - 它可以工作,但它总是有点脆弱。如果你能找到一个允许你指定依赖关系的安装程序构建器(例如Advanced Installer - 不是免费但效果很好),我会首先尝试,因为它看起来更强大一些。

答案 1 :(得分:2)

py2exe工作得很好,我想你只需要设置一个Windows框(或VM)就可以用它来构建软件包。

答案 2 :(得分:0)

我建议在Windows端使用py2exe,然后在mac端使用BuildApplet。这将允许您为不太精明的用户双击制作一个简单的应用程序。

相关问题