4

编辑跨平台部署和安装方便

一种选择我设想的,但不知道有足够的了解是如为Windows编写一个批处理脚本:

  • 搜索一个Python安装,下载一个安装,如果不存在
  • 然后安装使用distutils同时还处理依赖捆绑包。

看起来这可能是一个相对优雅和简单的解决方案,但我不知道如何进行 - 任何想法?

原始的问题

简单

你会推荐以下情形有什么办法?

  • 创造的技术应用Linux开发环境
  • 部署,现在也是要在Windows和Mac
  • 现有的代码库在Python
  • wine不会安装Windows版本的Python
  • 没有Windows安装CD可用于创建虚拟窗口/ mac机器
  • 移植到java由于现有的代码库
  • 客户都不是技术的用户,即提供标准的Python包不够的 - 确实需要安装自含式产品

背景

我写Linux下的技术和科学的应用程序,但需要一些他们也可以在Windows/MacOs机器上部署。

在过去我使用过很多Python,但是我发现对于不喜欢安装python软件包的非技术用户,创建一个简单的可执行文件(通过使用例如py2exe)是困难的,因为我不能使用wine获取windows版本的Python安装。

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

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

+1

美是unix和mac支持python的开箱即用。你唯一需要确定的是你编写你的代码来跨平台。所以它就像在他们的机器上倾倒项目并在路径上寻找python一样简单,在windows py2exe或pyinstaller上都是不错的选择 –

+1

这个问题本该不应该关闭。问题在于:1)部署框架2)开发环境,3)如果有关于该主题的任何现有技术。 – smaudet

回答

5

我有一个project,听起来与您正在尝试做的事情模糊不清,我也看到了一些相同的问题,因为我通常在Linux上开发并且移植到Windows。这是一个Python + wxPython + NumPy + SciPy + matplotlib +其他包,我发现最好的工作是使用PyInstaller。 PyInstaller在处理第三方Python包方面做得非常出色,并且非常轻松地创建了一个EXE。

我认为如果您使用的是py2exe或PyInstaller,那么自从IIRC以来Windows或多或少都必须在Windows上完成,但有几个Windows libs必须出现。也许你可以运行Windows EC2实例?根据您的应用程序的复杂程度,您可以改为使用Portable PythonPyPy

我已经尝试下载Python,并且需要Windows包装盒之前的包装 - 它可以工作,但它总是有点脆弱。如果你可以找到一个安装程序生成器,让你指定依赖关系(例如Advanced Installer - 不是免费的,但效果很好),我会尝试,因为它似乎是一个更强大一点。

2

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

+0

我担心这可能是唯一真正的解决方案 - 如果没有人提出任何替代方案,我将不得不追捕Windows安装媒体。谢谢! – jmetz

+0

关于使用本地脚本安装python然后启动标准'distutils'设置的任何想法或想法? – jmetz

+0

@mutzmatron从编写一个为现有的Python安装设置'virtualenv'的脚本,我的低调印象是它不重要。 – delnan

0

我会推荐使用py2exe的Windows端,然后BuildApplet的mac端。这将允许您为不太熟悉的用户创建一个简单的应用程序,双击它。