Python 如何跨平台编译打包?

2018-05-25 09:23:51 +08:00
 findbrick

比如我想在代码发布机器(centos7.3),编译打包.exe 可执行文件,然后可以在 windows 下运行 求教如何实现?

7405 次点击
所在节点    程序员
11 条回复
wlwood
2018-05-25 09:43:31 +08:00
搞不了。
除非,你在 centos 上,搞个 windows 模拟。
但是,有这折腾,还不如直接在 windows 上直接打包。
neoblackcap
2018-05-25 09:48:10 +08:00
是一个脚本还是包括二进制代码?
不过你们有这样的需要我建议你们还是寄希望与跨平台比较良好的语言,一旦 Python 涉及到 C 扩展,你的跨平台就不好做了。
polaa
2018-05-25 10:07:39 +08:00
找个 windows 环境, 用 pyinstaller
findbrick
2018-05-25 10:14:39 +08:00
@wlwood 尝试很多方案都不行
@neoblackcap 就是简单的 py 文件 然后编译打包成 exe 文件
@polaa 只能这样了吗?
wlwood
2018-05-25 10:48:30 +08:00
@findbrick 可以这样,在 windows 上起个 server 服务,centos 上 client, 代码发布到 centos 后触发传递代码到 window 的 server 上执行打包,打包完成,再传递回来。
master
2018-05-25 10:53:54 +08:00
Appveyor →_→
neoblackcap
2018-05-25 10:54:12 +08:00
@findbrick 其实如果很简单的程序,可以用 golang 改写,一键编译成对应平台的可执行文件,对于这个,golang 做得还行。如果比较复杂,一定要 Python 的话,那么就用 @wlwood 的方案或者你们上个 CI 服务,最不行你就上个虚拟机吧
Greenm
2018-05-25 10:57:55 +08:00
pytoexe 或者 wine + pyinstaller

能实现需求,但是不推荐这样做。
pango
2018-05-25 11:28:41 +08:00
基本无解,不明白怎么会有这样的需求?直接在 win 下面打包 exe 极其简单,不要把问题搞复杂,留着时间陪家里人。

不然就转 golang 吧,用过 golang 的跨平台编译之后真是感动的要哭。
jmc891205
2018-05-25 11:51:19 +08:00
做成后端服务。。。然后通过 web 调用。。。
encro
2018-05-25 22:50:39 +08:00
pip install pyinstaller
pyinstaller --onefile script.py
没必要浪费时间。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/457630

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX