加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

如何在Windows上使用Python创建OS X应用程序

发布时间:2020-12-14 02:54:53 所属栏目:Windows 来源:网络整理
导读:我需要自动化跨平台应用程序构建.整个构建在 Windows机器上运行.其中一部分是用 Python编写的,并为OS X编译.目前,这部分版本是在OS X上手动完成的. 我尝试了pyinstaller,但它看起来只是为它正在运行的平台构建.我也试过py2app但它没有在Windows上安装. 有没
我需要自动化跨平台应用程序构建.整个构建在 Windows机器上运行.其中一部分是用 Python编写的,并为OS X编译.目前,这部分版本是在OS X上手动完成的.

我尝试了pyinstaller,但它看起来只是为它正在运行的平台构建.我也试过py2app但它没有在Windows上安装.

有没有工具可以在Windows机器上将Python脚本编译到OS X应用程序?

解决方法

简短回答:

显然,使用您提到的标准工具集并没有简单的方法.我概述了一个完全无法解决的解决方案,可能过于复杂而无法考虑.

最终结果:继续手动操作,它可能是目前为止最好的选择.

借鉴可靠和/或官方来源:

Create a single executable from a Python project中的micheal0x2a’s优秀答案中已经列出了一长串精选的选项列表,其中概述了可用于创建Python程序的独立发行版的大多数工具.一条线突出:

Also,unless otherwise noted,all programs listed below will produce an exe specifically for the operating system it’s running in.

我可能读错了,但没有明确的跨平台支持说明.

类似的列表可以在Distribution Utilities和Freezing Your Code — The Hitchhiker’s Guide to Python中找到.从这些列表我们可以看看Windows支持的项目:

bbfreeze:未维护,没有关于限制的文档通常被此列表中的其余部分取代.

PyInstaller:根据他们的documentation:

PyInstaller is tested against Windows,Mac OS X,and Linux. However,it is not a cross-compiler: to make a Windows app you run PyInstaller in Windows; to make a Linux app you run it in Linux,etc. PyInstaller has been used successfully with AIX,Solaris,and FreeBSD,but is not tested against them.

PyInstaller曾试图支持交叉编译(来自Linux – > Windows),但是later dropped the idea.

cx_freeze:在他们的Frequently Asked Questions列表中查看他们的Freezing for other platforms问题:

cx_Freeze works on Windows,Mac and Linux,but on each platform it only makes an executable that runs on that platform. So if you want to freeze your program for Windows,freeze it on Windows; if you want to run it on Macs,freeze it on a Mac.

py2app:这不是一个选项,因为py2app仅支持基于其注释的OSX机器:

NOTE: py2app must be used on OSX to build applications,it cannot create Mac applications on other platforms.

所以在Windows上安装它是不行的.

这包含了可用于在Windows上创建独立应用程序的工具.即使不在Windows上,也不存在用于创建与操作系统无关的工具的解决方案.

实现这些目标的一般共识是通过虚拟机;您创建目标操作系统的VM映像,在vm中运行该操作系统的专用工具,然后将捆绑的可执行文件传输到兼容的计算机.由于OSX通常不容易虚拟化,据我所知,你在这里运气不好.

一种复杂的可能方式:

现在,我说没有简单的方法可以做到这一点的原因是因为可能有一个,但从我所看到的,它是如此乏味,你甚至不应该考虑它.我们在这里面临的一般问题是,windows的可执行文件与OSX完全不兼容,哎呀,Linux executables aren’t either.所以我们需要的是交叉编译的能力.

我听过的一个编译器supports cross-compilation是clang.因此,为了弥补可执行文件的不兼容性,理论上你可以使用clang作为交叉编译器.问题是,这不是一项简单的任务;它可能比你自it is riddled with complex issues (From OSX to Windows example)以来愿意做的更难.

如果你确实找到了一种方法,你现在需要python脚本中的.cpp / .c文件.值得庆幸的是,这可以通过使用像Nuitka或Cython这样的工具来完成.

这些要点是相同的,输入.py exit .cpp / .c.第二个棘手的部分可能是设置clang编译器与这些一起使用.老实说我不知道??是否有人这样做过.

我没有多看过它们,但对于Nuitka,我知道它也可以用来创建一个standalone executable when passed the --standalone flag(参见:移动到其他机器).因此,理论上你可以使用Nuitka和clang配置为OSX进行交叉编译.然后你可以休息;这是你应得的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读