Table Of Contents
Creating packages for OS X(翻訳済み)¶
注釈
以下の方法でKivyアプリケーションのパッケージ化ははOS X内で行ないます。また32ビットプラットフォームではサポートされなくなりました。
Using Buildozer(Buildozerを使用)¶
pip install git+http://github.com/kivy/buildozer cd /to/where/I/Want/to/package buildozer init
buildozer.specを編集して、アプリの詳細情報を追加します。requirements= sectionに追加します。
デフォルトでは要件に指定されたkivyバージョンは無視されます。
/Applications/Kivy.appでKivy.appを持っている場合はパッケージングのために使用されます。それ以外の場合はKivy masterを使用してkivy.orgから最新のビルドをダウンロードして使用されます。
Python3.xxのためにパッケージ化したい場合は、単純にkivy.orgのダウンロードセクションからKivy3.7zという名前のパッケージをダウンロードして実行して、/Applications の Kivy.appに抽出します。
buildozer osx debug
アプリがパッケージ化され、ビデオサポートを必要としない場合、gstreamerのような不要なパッケージを削除する場合があります。同一のロジックはアプリを実行するために必要とされ、最小の状態にパッケージの容量を減らして使用していない他のパッケージにも適用されます。
Python 2(9.xMB)と3(15.xMB)の両方のために、このメソッドを使用してパッケージ化された”“ショーケースの例として、ここでパッケージを見つけられます::https://drive.google.com/drive/folders/0B1WO07-OL50_alFzSXJUajBFdnc
それでおしまい。 お楽しみください!
Buildozerは、アプリをパッケージ化する際にKivy SDKを使用しています。Buildozerよりも、アプリの詳細を制御したい場合は以下のセクションで説明するように、直接SDKを使用する方法を提供しています。
Using the Kivy SDK(Kivy SDKを使用しています)”¶
バージョン1.9.0以来、KivyはOS Xプラットフォームにインストールするタイプとポータブルでの配布がリリースされます。
下記の方法を使用して、アプリはパッケージ化されてSDL2とのGStreamerのようなフレームワークが簡単に含めてKivy SDKと一緒に配布できます。
ダウンロードページから変更されていないKivy SDK(Kivy.appを)を持っていることを確認してください。
次のコマンドを実行してください:
> mkdir packaging > cd packaging packaging> git clone https://github.com/kivy/kivy-sdk-packager packaging> cd kivy-sdk-packager/osx osx> cp -a /Applications/Kivy.app ./Kivy.App
注釈
上記のこのステップでは、パスと権限を確認することが重要です。以下のようなコマンド``cp -rf``などでコピーしますが、アプリケーションが使用できなくなると後でエラーになります。
今、必要があるのは、次のコマンドを実行してKivy.appでコンパイルされたアプリケーションを含めることです。
osx> ./package-app.sh /path/to/your/<app_folder_name>/
ここでの<app_folder_name>はアプリの名前です。
Kivy.appのコピーの`<app_folder_name>.app`ファイルのパッケージにアプリケーションのコンパイル済みのコピーが含まれています。
自己完結パッケージを展開する準備ができました!以下の説明でさらにアプリをカスタマイズできます。
Installing modules (モジュール群のインストール)¶
OSX上のKivyパッケージには、kivy コマンドを使用してアプリケーションを実行したときに有効化する独自のvirtual envを使用しています。 インストールする必要がある任意のモジュールをインストールするには次のようにします:
$ kivy -m pip install <modulename>
モジュール/ファイルはどこにインストールされているか?¶
アプリ内のポータブルvirtual env内にあります:
Kivy.app/Contents/Resources/venv/
例えばkivyガーデンのようなバイナリをインストールした場合、virtual envないで後から利用できるようになります:
kivy -m pip install kivy-garden
このenvをアクティブにした場合、Kivyガーデンのlibが使用可能になります。
ソース、/Applications/Kivy.app/Contents/Resources/venv/bin/activate のmapview の非アクティブ化をコントロールする。
バイナリファイルをインストールするには¶
Kivy.app/Contents/Resources/venv/bin/ のディレクトリにバイナリをコピーするだけです。
他のフレームワークを含めるには¶
Kivy.appはSDL2とのGStreamerフレームワークが付属して提供されます。 他のフレームワークを含めるには次の方法で行います:
git clone http://github.com/tito/osxrelocator
export PYTHONPATH=~/path/to/osxrelocator
cd Kivy.app
python -m osxrelocator -r . /Library/Frameworks/<Framework_name>.framework/ \
@executable_path/../Frameworks/<Framework_name>.framework/
<Framework_name>を使用するフレームワークで置換することを忘れないでください `osxrelocator`ツール は.appファイル内の実行可能ファイルへの相対的な枠組みの中でLIBSのパスを変更し、.appでフレームワークポータブルを作ります。
アプリのサイズを縮小¶
現在のアプリはかなりの大きさを持っていますが、不要な部分をパッケージから削除できます。
例えばGStreamerを使用しない場合、単純にYourApp.app/Contents/Frameworksから削除します。同様に、/Applications/Kivy.app/Contents/Resources/kivy/examples/ または kivy/tools, kivy/docs などからexamplesフォルダを削除できます。
このように、パッケージはあなたのアプリケーションのために必要とされる部分を含めることができます。
Adjust setting(設定を調整する)¶
アイコンとアプリの他の設定は、ニーズに合わせてYourApp/Contents/info.plistファイルを編集することで変更します。
Create a DMG(DMGの作成)¶
アプリのDMGを作成するには、次のコマンドを使用します:
osx> ./create-osx-dmg.sh YourApp.app
最後に / がないことを注意してください。これは開発したアプリのサイズをさらに縮小する圧縮されたdmgを与えます。
Using PyInstaller without Homebrew(HomebrewなしでPyInstallerを使用する)¶
まず、ここで述べたようにHomebrewを使用せずにKivyとその依存関係をインストールします。http://kivy.org/docs/installation/installation.html#development-version 。
kivyを持っており、そのdepsをインストールしたら、pyInstallerをインストールする必要があります。
`testpackaging`フォルダを使用すると仮定しましょう:
cd testpackaging
git clone http://github.com/pyinstaller/pyinstaller
このディレクトリにtouchtracer.specという名前のファイルを作成し、そこに次のコードを追加します:
# -*- mode: python -*-
block_cipher = None
from kivy.tools.packaging.pyinstaller_hooks import get_deps_all, hookspath, runtime_hooks
a = Analysis(['/path/to/yout/folder/containing/examples/demo/touchtracer/main.py'],
pathex=['/path/to/yout/folder/containing/testpackaging'],
binaries=None,
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
hookspath=hookspath(),
runtime_hooks=runtime_hooks(),
**get_deps_all())
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='touchtracer',
debug=False,
strip=False,
upx=True,
console=False )
coll = COLLECT(exe, Tree('../kivy/examples/demo/touchtracer/'),
Tree('/Library/Frameworks/SDL2_ttf.framework/Versions/A/Frameworks/FreeType.framework'),
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
name='touchtracer')
app = BUNDLE(coll,
name='touchtracer.app',
icon=None,
bundle_identifier=None)
パスを関連するパスに変更します:
a = Analysis(['/path/to/yout/folder/containing/examples/demo/touchtracer/main.py'],
pathex=['/path/to/yout/folder/containing/testpackaging'],
...
...
coll = COLLECT(exe, Tree('../kivy/examples/demo/touchtracer/'),
次に以下のコマンドを実行します:
pyinstaller/pyinstaller.py touchtracer.spec
アプリを作る際に`touchtracer`を置換してください。 これは、あなたの dist/ folderの<yourapp> .appファイルを提供します。
Using PyInstaller and Homebrew(PyInstallerとHomebrewを使用する)¶
注釈
サポートする最も古いOS Xのバージョンでアプリをパッケージ化します。
Complete guide(コンプリートガイド)¶
Homebrew をインストールします。
Pythonをインストールします:
$ brew install python
注釈
Python3を使用するには、``brew install python3``と``pip``を``pip3``と置換してガイドに従ってください。
(再)``–build-bottle``を使用して依存関係をインストール、他のマシンで使用することができるかを確認します:
$ brew reinstall --build-bottle sdl2 sdl2_image sdl2_ttf sdl2_mixer
注釈
プロジェクトがGStreamerまたは他の追加のライブラリに依存する場合(再)``–build-bottle`でインストールして記載されているように`従います`below <additional libraries>`_。
CythonとKivyをインストールします:
$ pip install -I Cython==0.23 $ USE_OSX_FRAMEWORKS=0 pip install -U kivy
PyInstallerをインストールします:
$ pip install -U pyinstaller
main.pyへのパスを使用してアプリをパッケージ化します:
$ pyinstaller -y --clean --windowed --name touchtracer \ --exclude-module _tkinter \ --exclude-module Tkinter \ --exclude-module enchant \ --exclude-module twisted \ /usr/local/share/kivy-examples/demo/touchtracer/main.py
注釈
これは、まだ追加の画像や音声のファイルをコピーしません。
.spec
を作成した後そのためのファイルを追加する必要があります。
Editing the spec file(specファイルを編集する)¶
スペック・ファイルはtouchtracer.specという名前で、pyInstallerのコマンドを実行したディレクトリに存在します。
COLLECT()
にtouchtracerで呼ばれるデータ(touchtracer.kv, particle.png、...)を追加する必要があります。Tree()``オブジェクトに追加する行を加えます(例:``Tree('examples-path\\\\demo\\\\touchtracer\\\\'))
。Treeはtouchtracerディレクトリにあるすべてのファイルを検索して最終的なパッケージに追加します。 COLLECTセクションに次のようになります:
coll = COLLECT(exe, Tree('/usr/local/share/kivy-examples/demo/touchtracer/'),
a.binaries,
a.zipfiles,
a.datas,
strip=None,
upx=True,
name='touchtracer')
pyInstallerが必要なKivyファイルを取得するようにするために必要なhookを追加します。実行します。 specを実行する準備ができました。
specのビルドとDMGの作成¶
コンソールを開きます。
PyInstallerディレクトリに移動してspecをビルドします
$ pyinstaller -y --clean --windowed touchtracer.spec
実行します。
$ pushd dist $ hdiutil create ./Touchtracer.dmg -srcfolder touchtracer.app -ov $ popd
これで、dist ディレクトリで使用可能なTouchtracer.dmgを持つことになります。
Additional Libraries(追加ライブラリ)¶
GStreamer¶
プロジェクトがGStreamerに依存している場合:
$ brew reinstall --build-bottle gstreamer gst-plugins-{base,good,bad,ugly}
注釈
プロジェクトのOgg Vorbisのサポートが必要な場合は、上記のコマンドにオプション``–with-libvorbis``を追加して選択します。
HomebrewのPythonを使用している場合、あなたは現在、この `プルリクエスト<https://github.com/Homebrew/homebrew/pull/46097>`_ をマージする必要があります:
$ brew reinstall --with-python --build-bottle https://github.com/cbenhagen/homebrew/raw/patch-3/Library/Formula/gst-python.rb