Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 跨平台部署,易于安装_Python_Batch File_Cross Platform_Py2exe_Scientific Computing - Fatal编程技术网

Python 跨平台部署,易于安装

Python 跨平台部署,易于安装,python,batch-file,cross-platform,py2exe,scientific-computing,Python,Batch File,Cross Platform,Py2exe,Scientific Computing,编辑 我考虑了一个选项,但对它了解不够,例如,windows编写一个批处理脚本: 搜索Python安装,下载一个,如果不存在,请安装 然后使用distutils安装捆绑包,以处理依赖项 看起来这可能是一个相对优雅而简单的解决方案,但我不确定如何继续——有什么想法吗 原始问题 简而言之 对于以下场景,您建议采用什么方法 用于创建技术应用程序的Linux开发环境 现在也将在Windows和Mac上部署 Python中的现有代码库 wine不会安装windows版本的Python 没有windo

编辑

我考虑了一个选项,但对它了解不够,例如,windows编写一个批处理脚本:

  • 搜索Python安装,下载一个,如果不存在,请安装
  • 然后使用
    distutils
    安装捆绑包,以处理依赖项
看起来这可能是一个相对优雅而简单的解决方案,但我不确定如何继续——有什么想法吗

原始问题

简而言之

对于以下场景,您建议采用什么方法

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

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

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

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


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

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

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

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

我认为,如果您使用的是py2exe或PyInstaller,那么或多或少都必须在Windows上完成,因为IIRC中有一些Windows LIB必须附带。也许您可以运行Windows EC2实例?根据您的应用程序的复杂程度,您可能可以使用或使某些东西正常工作


我曾经尝试过下载Python和Windows Box所需的软件包——它可以工作,但总是有点脆弱。如果你能找到一个可以让你指定依赖项的安装程序生成器(例如,不是免费的,但工作得很好),我会先试试,因为它看起来更健壮一些

优点在于unix和mac支持现成的python。您必须确保的唯一一件事是编写跨平台的代码。因此,在windows py2exe或pyinstaller上,将项目转储到他们的机器上并在路径上查找python都是很好的选择。这个问题本不应该解决。问题涉及:1)部署框架2)开发环境,以及3)是否有任何与此相关的现有技术。我担心这可能是唯一真正的解决方案-猜测如果没有人提出任何替代方案,我将不得不寻找windows install media。谢谢关于我的编辑,关于使用本机脚本安装python,然后启动标准的
distutils
设置,你有什么想法或想法吗?@mutzmatron我只写了一个脚本,为现有的python安装设置了
virtualenv
,给人的印象是,这是不平凡的。@delnan-不平凡,就像在一个小程序中一样参与,但可行(可能已经有人做了)或更像你这样的人尝试它是愚蠢的?肯定比仅仅使用
py2exe
或类似工具更为参与。在给那些工具一个很好的机会之前你尝试一下是愚蠢的。如果他们真的不能很好地支持您的用例,您就不会愚蠢地尝试它(记住,不使用windows不是用例;-)。