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 をビルドしてみたい場合は、次の回答を試してください: Windows/Linux で Mac パッケージを作成するための PackageMaker
OS X には UNIX 基盤があるため、次のことができます。( や などの標準的なユーティリティもいくつかあるuudecode
と思いunzip
ます。);
uuencode file.zip file.zip >uu.txt
この zip ファイルをテキストに変換するために使用します。uuencode
れたテキストをヒアドキュメントとして、に供給されるシェル スクリプトに入れuudecode
、zip ファイルを再作成します。これは、シェル スクリプトの 2 番目のコマンドである必要があります。最初のコマンドは、必要なユーティリティをチェックする必要があります。プログラムをインストールするには、シェル スクリプトを実行します。UNIX では、このスクリプトは root として実行する必要があります。ただし、OS X がそれをどのように処理するかはわかりません。以下に例を示します (同梱の zip ファイルには、ランダム ノイズのみの 2 つのファイルが含まれています)。
#!/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
あなたは私が苦しんだのと同じような問題を抱えています。
Macの場合。本当にドライバーや何らかのDRMをインストールする必要がない限り、インストーラーの代わりにdmgパッケージを使用したいと思うでしょう。
したがって、アプリケーションを簡単に配布できるように、.appディレクトリを作成してdmgファイルとしてパッケージ化する必要があると仮定します。
Pythonコードから.appディレクトリを構築するには、Pyinstallerを使用することをお勧めします。長所
短所
Pyinstallerを使用して.appをビルドするには、ここに関連ドキュメントのリンクがあります
また、dmgファイルを作成するには、無料のオプションを使用できますが、私にとっては、DMGCanvasは非常に便利でした。
長所
短所
私の知る限り、.pyから.appファイルをビルドし、dmgまたはインストーラーに統合されたソリューションはありません。
したがって、自動化するコードを作成する必要がありますが、どちらもサポートしているため、非常に簡単です。
コマンドライン。
pyinstallerは OSX 実行可能ファイルを作成できますが、私自身は OSX 上でしか使用していないため、Ubuntu から動作するかどうかはわかりません。
私はこのプログラムについてkivyのドキュメントを読んで学びました: http://kivy.org/docs/guide/packaging-macosx.html
これが役立つことを願っています。
py2appは py2exe に対応する Mac 版ですが、Ubuntu から実行できるかどうかはわかりません。