【问题标题】:Portable Python (Mac -> Windows)便携式 Python (Mac -> Windows)
【发布时间】:2010-11-03 11:44:32
【问题描述】:

我现在有一台可爱的 Macbook,我喜欢在移动中编写代码。我也喜欢用 Python 编码。但是,我想将最终结果作为可执行文件分发给使用 Windows 的朋友。

我知道 Py2Exe 可以做到这一点,但我不知道 Python 跨操作系统的可移植性如何。任何人都可以提供任何建议吗?我也在用 PyGame。

非常感谢

【问题讨论】:

  • 查看python.org 以获得此问题的答案。 Python 是完全可移植的。一直这样做。 .EXE 文件不可移植。根据定义。你想做什么?为什么要提到不可移植的.EXE 文件?请扩展您的问题以提供更多信息。
  • 我的意思是,在 Mac 上编码的 python 会在 Windows 机器上运行,还是到处都有特定于平台的糖。我想稍后在 Windows 上编译为 EXE,但它必须可以作为 Python 运行才能将其编译为 EXE。 :P
  • 更新您的问题。请不要评论您的问题。请更新问题是完整和正确的。

标签: python portability pygame


【解决方案1】:

只要安装了解释器和相关库,Python 脚本 是相当可移植的。生成的 .exe 和 .app 文件不是。

【讨论】:

  • “相关库”可以并且确实经常依赖于平台特定的功能。例如Twisted 的 kqueue 功能,或os.fork。编写程序时必须始终牢记可移植性原则。
  • 太好了,这正是我需要知道的。完成后,我将在 Windows 上编译所有内容。感谢其他回复的人。 :)
【解决方案2】:

Py2exe 生成 Windows 可执行文件,因此它们只能在 Windows 平台上运行。 http://www.py2exe.org/index.cgi/FAQ 的常见问题解答提供了有关其工作原理的更多信息。本质上,它提供了在 Win9x 以及更多当前平台上运行所需的内容。注意:FAQ 提到了字符编码的一些潜在问题和解决方法。

使用 python,它在基于 Unix 的系统上很常见,因为几个 Linux 发行版都有用该语言编写的自定义维护脚本。因此 Python 脚本将与 Ruby 脚本等一样具有可移植性。只要目标机器有解释器,并且您不使用仅在一种平台上的外部程序,其他人就可以使用您的工作。

【讨论】:

    【解决方案3】:

    就我个人而言,我在使用所有 Exe 构建器、py2exe、cx_freeze 等方面都遇到了巨大的困难。一直存在错误和错误,不断显示 atexit 模块的问题。

    我发现仅仅通过包含 python 发行版的方式更方便。除了易于使用之外,还有一个优点。

    每次为 python 应用程序构建 EXE 时,您必须做的是包含 python 安装的核心,但仅限于您的应用程序正在使用的模块。但即使在这种情况下,由于包含 python 安装,您的应用程序可能会从 python 模块的仅仅几个 Kbs 增加到超过 15 mbs。

    当然,安装整个 python 会占用更多空间,但每次发送 python 应用程序时,它们的长度只有几 kb。另外,每次您将昏迷更改为您的 python 应用程序时,您都需要进行捆绑 exe 的麻烦。或者我认为你有,我不知道仅仅更换 py 模块是否可以帮助你避免这种情况。

    在任何情况下,安装 python 和 pygame 就像在 Windows 中安装任何其他应用程序一样简单。在linux中通过突触也非常容易。

    虽然 MACOS 有点棘手。 MACOS 已经预装了 python,Snow leopard 已经安装了 2.6.1 python。但是,如果您的应用程序使用的 python 比这晚,并且在您的应用程序中包含 python 的安装,您将必须指示用户通过“获取信息 - > 打开方式”设置负责启动 python 应用程序的 python 启动器应用程序使用您的 python 版本而不是板载默认的 2.6.1 版本,这并不困难,只需几秒钟,即使是无知的用户也可以做到这一点。

    Python 具有极强的便携性,python pygame 应用程序不能只在 Windows、MACOS、Linux 三大平台上原封不动地运行。它们甚至还可以在移动和便携式设备上运行。如果您需要构建跨平台运行的应用程序,python 非常简单且强烈推荐。

    【讨论】:

      【解决方案4】:

      如果您打算将 Linux 纳入您的可移植性标准,那么值得记住的是,许多发行版仍然打包 2.6(甚至 2.5),并且可能也会落后于 3.x 系列(我假设不过,鉴于 PyGame 的要求,您使用 2.x)。

      PyGame 的版本似乎在不同发行版之间也有很大差异。

      【讨论】:

      • 没关系,没有人在 Debian 上玩游戏。 运行
      • 哈哈。好吧,总是有 WINE ,Ubuntu 可以完美地运行 Guild Wars,我怀疑 Debian 也会。运行 Windows 游戏和 linux 游戏的能力,使 Linux 成为一个相当不错的游戏平台。但是游戏不是 linux 的强项,但它也不是 Macos。就游戏而言,我个人更喜欢游戏机,但我不再玩游戏了。现代游戏都是关于出色的图形,它们非常无聊。
      猜你喜欢
      • 2013-11-24
      • 2013-10-10
      • 2016-06-20
      • 1970-01-01
      • 2011-10-06
      • 1970-01-01
      • 2011-12-09
      • 2014-02-22
      • 1970-01-01
      相关资源
      最近更新 更多