python - 跨平台部署,安装方便

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

<分区>

编辑

我考虑过但不太了解的一个选择是,例如对于 Windows,将批处理脚本写入:

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

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

原始问题

简述

对于以下情况,您会推荐什么方法?

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

背景

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

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

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

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

最佳答案

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

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

我之前尝试过为 Windows 机器下载 Python 和所需的包 - 它有效但总是有点脆弱。如果你能找到一个允许你指定依赖项的安装程序生成器(例如 Advanced Installer - 不是免费的但效果很好),我会先尝试它,因为它似乎更强大一些。

关于python - 跨平台部署,安装方便,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14139377/

相关文章:

haskell - Linux 主机上的 GHC 交叉编译 Windows 源代码

android - 跨平台 xamarin 应用程序和 native 库绑定(bind)

python - Django Pinax ,扩展捆绑应用程序

python - 如何检查 PyQt 窗口是否存在

windows - 如何使用命令行建立套接字连接

batch-file - 如何在不同的 .bat 文件中调用动态标签

Python Dataframe - 在选定的行和列上应用函数

python - Pandas 支点 : pivot with multiple columns

shell - 如何使用 adb shell 移动文件?

c++ - 实现独立于平台的 Glob