请问 python3.7 的一个项目在 macos 上如何打包才可以让 windows 的用户也能使用

2019-10-21 20:01:03 +08:00
 0clickjacking0

楼主是 macos 的系统,用了 pyinstaller 在 mac 上打包一个比较简单的 python3.7 的项目,不含 gui,打包出来的程序是Mach-O 64-bit executable x86_64,windows 的用户并不能使用,请问如何打包才可以让 windows 的用户也能体验呢,最差的情况就只能在我 windows 的虚拟机上打包了,各位大佬有什么办法吗

4532 次点击
所在节点    Python
17 条回复
lbp0200
2019-10-21 20:05:46 +08:00
让我想起了 goagent
111111111111
2019-10-21 20:08:37 +08:00
如果打包出来的是二进制文件想要跨平台的话,就很为难了…
cyyzero
2019-10-21 20:12:00 +08:00
docker
VDimos
2019-10-21 20:13:20 +08:00
用 ci 呗,有支持 windows 的 ci 吧
tomczhen
2019-10-21 20:17:31 +08:00
文档里面说得很清楚了,得在 Windows 上打包。
fannas
2019-10-21 20:27:36 +08:00
docker
ClericPy
2019-10-21 20:54:37 +08:00
如果真那么刚需, 用嵌入式的绿色版 Python 解释器加 shiv 来打包吧, 我打过这种倒是

https://github.com/ClericPy/distribute-python-on-windows

以前随手撸的, 不知道还能跑不能... 说白了就是解释器指望绿色版 Python, package 指望 shiv 使用 PEP 441 协议打包成一个 pyz 文件, 就酱
hushao
2019-10-21 22:26:51 +08:00
源码无关的话,直接给源码跑起来不好么,要是源码不能给的话,你折腾来折腾去还不如找一台 win 机临时打包一下,或者就用你那虚拟机,,,
chih758
2019-10-21 22:37:07 +08:00
用 go 重构
chih758
2019-10-21 22:40:03 +08:00
一次获取 linux-amd64 linux-386 darwin-amd64 darwin-386 windows-amd64 windows-386 freebsd-amd64 freebsd-386 linux-arm linux-arm64 架构的二进制文件
ebingtel
2019-10-22 08:36:47 +08:00
在 windows 的 docker 镜像里面打包呗……
hkitdog
2019-10-22 09:53:21 +08:00
@ebingtel Windows 的 docker images (windows server core)不是只能在 windows 的主機運行嗎
laike9m
2019-10-22 13:22:13 +08:00
@ClericPy 唯一一个靠谱的答案,其它都是强答。
laike9m
2019-10-22 13:23:24 +08:00
补充一个 shiv 的链接
https://github.com/linkedin/shiv
ClericPy
2019-10-22 13:28:25 +08:00
@laike9m 哈哈, V 站划水比例 1:9
另外, shiv 没试过打包 C lib 会不会跪, 理论上应该会凉
wozhizui
2019-10-22 14:32:22 +08:00
pyinstaller 就是这样,在哪个环境打包,就只能在哪个环境运行。
我当时 win 的 x64 打包,x86 都不能用,最后用了个什么命令强制设置 python 环境为 32 位,然后打包后,还找了个 32 位机器测试。麻烦的很。
laike9m
2019-10-22 15:05:27 +08:00
@ClericPy 这种坑都不会少,只能慢慢踩,看人品

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

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

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

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

© 2021 V2EX