9

Distutils は、Windows の自己解凍型 EXE を構築するための既存のソリューションを提供します。特に、Ubuntu を使用している場合でもパッケージを作成できます (これは、自動化されたビルド プロセスを考えると不可欠です)。

Ubuntu マシンから osx インストーラーをビルドするにはどうすればよいですか?

(これは python 2.7 用です)

4

5 に答える 5

5

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

于 2012-05-07T20:34:38.120 に答える
4

OS X には UNIX 基盤があるため、次のことができます。( や などの標準的なユーティリティもいくつかあるuudecodeと思いunzipます。);

  • distutils などの標準の Python パッケージ ツールを使用して、パッケージの zip ファイルを作成します。
  • uuencode file.zip file.zip >uu.txtこの zip ファイルをテキストに変換するために使用します。
  • シェルスクリプトを作成します。
  • によって生成さuuencodeれたテキストをヒアドキュメントとして、に供給されるシェル スクリプトに入れuudecode、zip ファイルを再作成します。これは、シェル スクリプトの 2 番目のコマンドである必要があります。最初のコマンドは、必要なユーティリティをチェックする必要があります。
  • zip ファイルをインストールするために必要な Python セットアップ ツールを使用します。
  • 必要なインストール後の作業を行います。
  • zip ファイルを削除します。

プログラムをインストールするには、シェル スクリプトを実行します。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
于 2012-05-11T22:33:04.213 に答える
0

あなたは私が苦しんだのと同じような問題を抱えています。

Macの場合。本当にドライバーや何らかのDRMをインストールする必要がない限り、インストーラーの代わりにdmgパッケージを使用したいと思うでしょう。

したがって、アプリケーションを簡単に配布できるように、.appディレクトリを作成してdmgファイルとしてパッケージ化する必要があると仮定します。

Pythonコードから.appディレクトリを構築するには、Pyinstallerを使用することをお勧めします。長所

  1. クロスプラットフォームです。
  2. Mac、Windows、Linuxでうまく機能します
  3. コマンドラインですべてを制御できます。
  4. それはまだ活発に開発されています。
  5. 必要な依存関係を自動的にパックし、ローカルマシンにインストールされているPythonとの競合を引き起こしません。
  6. 良いドキュメント。

短所

  1. 新しいバージョンと古いバージョンの間に少し矛盾があります。

Pyinstallerを使用して.appをビルドするには、ここに関連ドキュメントのリンクがあります

また、dmgファイルを作成するには、無料のオプションを使用できます、私にとっては、DMGCanvasは非常に便利でした。

長所

  1. サポートコマンドライン
  2. サポートテンプレート(GUIを使用してきれいな背景とフォルダーを作成し、コマンドラインで再利用します)
  3. サポートライセンス契約

短所

  1. 無料ではありません

私の知る限り、.pyから.appファイルをビルドし、dmgまたはインストーラーに統合されたソリューションはありません。

したがって、自動化するコードを作成する必要がありますが、どちらもサポートしているため、非常に簡単です。

コマンドライン。

于 2012-05-14T12:53:03.917 に答える
0

pyinstallerは OSX 実行可能ファイルを作成できますが、私自身は OSX 上でしか使用していないため、Ubuntu から動作するかどうかはわかりません。

私はこのプログラムについてkivyのドキュメントを読んで学びました: http://kivy.org/docs/guide/packaging-macosx.html

これが役立つことを願っています。

于 2012-05-13T20:12:35.440 に答える
0

py2appは py2exe に対応する Mac 版ですが、Ubuntu から実行できるかどうかはわかりません。

于 2012-05-05T16:06:50.880 に答える