【问题标题】:Compile python script on Windows for Linux use在 Windows 上编译 python 脚本以供 Linux 使用
【发布时间】:2015-01-11 06:45:59
【问题描述】:

是否可以在 windows 上使用 pyinstaller 来编译用于 Linux 的单文件解决方案?

在 powershell 上,运行以下命令:

pyinstaller scriptname.py --onefile

完美运行,创建在 Windows 上运行没有问题的单个 .exe 文件。如何修改它以生成二进制文件(或者在 Linux 上运行的任何东西,我不知道如何使用该平台,我只是想让某人使用该操作系统测试代码)?

我知道 PyInstaller 过程的一部分是创建一个 .spec 文件,可以针对高级编译配置进行修改,但这超出了我的范围。

在网上搜索后,似乎 PyInstaller 具有多平台功能,但一些资源指出,python 脚本只能编译用于正在编译它的操作系统,所以也许它甚至不可能,但我发现很难相信。

提前感谢您的帮助!

【问题讨论】:

  • 在 Linux 上你只需运行“python mySript.py”。从未听说过将 python 编译为二进制文件,但我不是专家。谁知道也许它可能。编辑:检查这个线程 - stackoverflow.com/questions/12339671/…

标签: python linux windows python-2.7


【解决方案1】:

pyInstaller 不打算用作交叉编译器,也不支持这样做。其实这是the FAQ中的第一个答案:

  1. 我可以使用 PyInstaller 作为交叉编译器吗?

    1. 我可以在 Linux 下运行时打包 Windows 二进制文件吗?

      不,不支持。请为此使用​Wine,PyInstaller 在 Wine 中运行良好。您可能还想查看邮件列表中的此线程。在 1.4 版中,我们对此进行了一些支持,但它显示只工作了一半。它需要在另一个分区上安装一些 Windows 系统,并且只适用于纯 Python 程序。只要你想要一个像样的 GUI(gtk、qt、wx),无论如何你都需要安装 Windows 库。所以使用 Wine 会容易得多。

    2. 我可以在 Linux 下运行时打包 OS X 二进制文件吗?

      目前这根本不可能。对不起!如果您想提供帮助,我们非常欢迎。

当然,您是在问是否可以在 Windows 下运行时打包 Linux 二进制文件,但是,正如您猜到的那样,答案是一样的。

尽管pyInstaller 本身不能做到这一点,但这并不一定意味着它是不可能;只是难度会大得离谱。

那么,可以做什么呢?嗯,一个明显的可能性是使用 Linux(或用户模式 ​​Linux,或类似的东西)运行虚拟机。然后,只需与虚拟机共享源目录,ssh 进入虚拟机,然后从那里运行 pyInstaller。

【讨论】:

  • 感谢您的回答 abarnert,我将交叉编译理解为创建可以跨平台使用的编译,例如一种尺寸适合所有人。再次感谢!
  • @ploo:术语可能有点混乱。将 Python 脚本(.py 文件)编译为 Python 字节码(.pyc 文件),这是跨平台的。但是构建一个本机可执行文件(.exe 文件),那不是;您需要在每个平台上使用不同的本机可执行文件。
猜你喜欢
  • 2011-04-09
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2018-06-29
  • 1970-01-01
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
相关资源
最近更新 更多