在Windows上编译python脚本以供Linux使用

时间:2014-11-13 23:33:36

标签: python linux windows python-2.7

是否可以在Windows上使用pyinstaller编译单文件解决方案以便在Linux上使用?

在powershell上,运行以下命令:

pyinstaller scriptname.py --onefile

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

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

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

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

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

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

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

           

      不,这不受支持。请使用Wine,PyInstaller在Wine中运行良好。您可能还想查看邮件列表中的此主题。在1.4版本中,我们已经为此建立了一些支持,但它只显示了一半。它需要在另一个分区上安装一些Windows系统,并且只适用于纯Python程序。只要你想要一个像样的GUI(gtk,qt,wx),你无论如何都需要安装Windows库。因此,使用Wine会更容易。

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

           

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

    4.   
  2.   

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

即使pyInstaller本身无法做到这一点,但这并不一定意味着不可能;只是这将是非常艰难的。

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