5

编辑

我考虑过但不太了解的一个选项是例如为 Windows 编写一个批处理脚本:

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

看起来这可能是一个相对优雅和简单的解决方案,但我不确定如何进行 - 有什么想法吗?

原始问题

简单来说

对于以下场景,您会推荐什么方法?

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

背景

我正在 Linux 下编写技术和科学应用程序,但也需要其中一些可部署在 Windows/MacOs 机器上。

过去我经常使用 Python,但我发现对于不喜欢安装 Python 包的非技术用户来说,创建一个简单的可执行文件(通过使用 eg py2exe)很困难,因为我无法获得 Windows 版本的Python 安装使用wine.

虽然java这似乎是一个不错的选择,但如果可能的话,我想避免从 Python 移植我现有的代码,特别是因为 Python 还允许编写可移植代码。

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

4

3 回答 3

5

我有一个听起来与您尝试做的项目有点相似的项目,并且自从我通常在 Linux 上开发并移植到 Windows 以来,我已经看到了一些相同的问题。这是一个 Python + wxPython + NumPy + SciPy + matplotlib + 各种其他包,我发现最好的方法是使用PyInstaller。PyInstaller 在处理第三方 Python 包方面做得非常出色,并且非常轻松地创建了一个 EXE。

我认为,如果您使用的是 py2exe 或 PyInstaller,则或多或少必须在 Windows 上完成,因为 IIRC 有一些 Windows 库必须随之而来。也许您可以运行 Windows EC2 实例?根据您的应用程序的复杂程度,您也许可以使用Portable PythonPyPy来做一些事情。

我之前曾尝试为 Windows 机器下载 Python 和所需的软件包 - 它可以工作,但它总是有点脆弱。如果您能找到一个安装程序构建器,它可以让您指定依赖项(例如,高级安装程序- 不是免费但运行良好),我会先尝试一下,因为它似乎更健壮一些。

于 2013-01-03T14:01:33.473 回答
2

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

于 2013-01-03T12:57:00.663 回答
0

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

于 2013-01-03T12:59:38.020 回答