Distutils 提供现有的解决方案来构建 Windows 自解压 EXE。值得注意的是,即使我在 Ubuntu 上,我也可以创建包(考虑到我们的自动化构建过程,这是必不可少的)。
如何从 Ubuntu 机器构建 osx 安装程序?
(这适用于 python 2.7)
Distutils 提供现有的解决方案来构建 Windows 自解压 EXE。值得注意的是,即使我在 Ubuntu 上,我也可以创建包(考虑到我们的自动化构建过程,这是必不可少的)。
如何从 Ubuntu 机器构建 osx 安装程序?
(这适用于 python 2.7)
Py2app、cx_freeze 和 py2exe 用于创建独立的应用程序,而不是安装程序。
您可以使用 Python distutils 创建包的 zip 文件,然后将 zip 文件包装在自解压并安装包的脚本中,如下所示:http ://www.noah.org/wiki/Self-extracting_Python_Script
或者,如果您想创建一个显示带有点击许可证的 GUI 的安装程序,那么您需要 OS X PackageMaker 来创建一个 mpkg 文件。我认为没有 Linux 等价物。如果您想尝试手动构建 mpkg,请尝试以下答案:PackageMaker for create Mac packages on Windows/Linux
您可以执行以下操作,因为 OS X 具有 UNIX 基础。(我假设它也有一些标准的实用程序,比如uudecode
和unzip
。);
uuencode file.zip file.zip >uu.txt
将此 zip 文件转换为文本。uuencode
作为here-document放入该 shell 脚本中,该脚本被馈送到uudecode
,以重新创建 zipfile。这应该是 shell 脚本中的第二个命令。第一个命令应该检查必要的实用程序。要安装程序,请运行 shell 脚本。在 UNIX 上,此脚本应以 root 身份运行。不过,不知道 OS X 是如何处理的。下面是一个示例(包含的 zipfile 包含两个只有随机噪声的文件);
#!/bin/sh
# Install script for foo
# Check for special programs that are used in this script.
PROGS="uudecode unzip python"
for P in $PROGS; do
which $P >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo "$(basename $0): The program \"$P\" cannot be found."
exit 1
fi
done
uudecode <<"EOF"
begin 644 test.zip
M4$L#!`H``````(<!K$`````````````````$`!P`9F]O+U54"0`#OHZM3ZB.
MK4]U>`L``03I`P``!.D#``!02P,$"@``````A`&L0$EXM>H``@````(```<`
M'`!F;V\O8F%R550)``.XCJU/N(ZM3W5X"P`!!.D#```$Z0,``)DCNBVSM81_
MA%IQ!+LKC\;\19[/E]F!`J2J*2:9B_8#MC^KM*]]9P1]?1Y1@1+/H%Q"'2J'
M,;$7:C9E+WC]%M(BAUFN]4D\$%F63!^CA8O>'0C(-!YD?$\GQ[;M:?@>=A/[
M61XK<A/]\.?!0$QX<5]T\9<ZP$;_?PRMV-3O(NK)/<MTI,!RYA&OWRK6<8%4
M_1!T/+-'7H^V#C[AK)+U?T>UCU."G]D(+JU[8Z#1EI89@'^10B:8.2$$9Q*@
MY:L4MK'^TVF)A5)9\%"/FF+1T@;]8\,I)$CCHHF#E&,D.GVM1=2N];4J?6WR
M0+YH]DXZ"UQ$GVA^F(`5L![=/<ROX]9RQCRWJ=?+G4Y>56[H=8:!:GTA_V;V
M2V$%U5([0D;T19H]P7+^448+^&M3;[/VJDEJ-SU=Q8U=3,IV^<)A>C)]?@XG
M?-9$B@YZGML`!&`\-CP["]B'FC&K7Z)T6K_&W1K5?M&K8D&^'C^J;H[Q4/ST
M(>QL].68#X)_0@`?9<R3#:4Y#A'X-<NT9C\OM3:4[<)`)LEO@E=*/=0U@]VY
M_R!__:Q'_FP3((*8^6JQ"$_H&BIWDD.6<"3D,'<1^=^.9F^2Z7.:OE"1,SV[
M)M(9!&V(4):?M7^JFR^P"!H4U+(*A;U@Z0QA+]5ZIS]B1;K)&@LJ-Y,L9SQ.
M^Q-"&^@#KQG94$L#!`H``````(8!K$#%*"OR``(````"```'`!P`9F]O+V)A
M>E54"0`#O(ZM3[R.K4]U>`L``03I`P``!.D#``!NFMNGLA(C_K!_F=T%?;P3
M#TUC7%4F+!Y#A8<SFK[;E3M.%J`YT>1AVMNJPFOE58Q["7<#AWQFZ!SG_-RW
M*4`@@P.7\>+LGTBNTLH-7)CB(LJDMD)COV5'H]O8G_4I&C:PFTVC%4P=+X*B
M%A^I^$>BO+<!D\&8&GS:&VLQHJJ[!NFW0H5FD6+:'OUT2--U1HXQ2R?JF2,9
M(/@>A(/SU#.78MTFADG`ZZTK!6:Z6\;I`2?D6I;FE=_0V?4>_0MC;$0$P?H%
MDHQ]MCK4;,5W=<IZV<)<`7A_B7<_=U,:X[8/$_&/518\NNBDYS,\<',K2C]9
M4M.5UL/R<\'0E>G#$>`I>/[UX$QM.+T\LF4;D^WF6FX3.(L?2V<5B%5)$!5[
ME47K#7\&D*3Y>I)8#45-HL(!F7+$)%7C9,$_YYL]EG='3BN9W[&9!$.<.U?E
M#0L?=6@%J/32)NAMI48M",_)0#JRR!*Y2P:ZE@JWD)5/#UK!!3]*2M47V1GE
M'X0(FN%_*3BX_X'(6X!ONLKN!U/&_ML-L:^FD/24Q)S*-D8)Z>F4Y^+$]\_'
MB\$$;#D__S_RT(Y]MMK?B#%F1&C`>,)'7:12DX=F)T,/!*^(M*[,^N;6E4";
M31K\AG0@[@4L9MB.`1Z!`%@K5G)P<]0!?P\$RFUC/S:Y_Y\0*:\+$U+JEM%"
M9E!+`0(>`PH``````(<!K$`````````````````$`!@`````````$`#M00``
M``!F;V\O550%``.^CJU/=7@+``$$Z0,```3I`P``4$L!`AX#"@``````A`&L
M0$EXM>H``@````(```<`&````````````*2!/@```&9O;R]B87)55`4``[B.
MK4]U>`L``03I`P``!.D#``!02P$"'@,*``````"&`:Q`Q2@K\@`"`````@``
M!P`8````````````I(%_`@``9F]O+V)A>E54!0`#O(ZM3W5X"P`!!.D#```$
:Z0,``%!+!08``````P`#`.0```#`!```````
`
end
EOF
# Unpack your zipfile
unzip test.zip
# Go into the created subdirectory and install
cd foo
python setup.py install
# whatever post-install stuff you want goes here...
cd ..
rm -rf foo test.zip
py2app是 py2exe 的 Mac 对应物,但我不知道你是否可以从 Ubuntu 运行它。
pyinstaller可以创建 OSX 可执行文件,但我自己只在 OSX 上使用过它,所以我不知道它是否适用于 Ubuntu。
我通过阅读kivy的文档了解了这个程序,这里:http ://kivy.org/docs/guide/packaging-macosx.html
我希望其中一些是有帮助的。
你遇到了和我一样的麻烦。
在麦克上。我敢打赌,除非您确实需要安装驱动程序或某种 DRM,否则您想使用 dmg 包而不是 Installer。
所以我只是假设您想要创建您的 .app 目录并将其打包为 dmg 文件,以便您可以轻松地分发您的应用程序。
要使用 python 代码构建 .app 目录,您可能需要使用 Pyinstaller。优点
缺点
要使用 Pyinstaller 构建 .app,这里是相关文档链接
要构建 dmg 文件,您可以使用免费选项,但对我来说,DMG Canvas非常有用。
优点
缺点
据我所知,.py 没有统一的解决方案来构建 .app 文件和 dmg 或安装程序。
所以你应该写一些代码来自动化它,但这很简单,因为它们都支持
命令行。