PySide2 GUIを使用して、単純なPythonアプリケーションを開発しています。現在、Windows、Linux、Macでは大丈夫です。 Windowsでは、PyinstallerとInnoSetupを使用して簡単なインストーラを構築できます。それから私はMacで同じことをやろうとしました。システムが正しく署名されていないため、システムはコマンドまたはPyinstallerによって生成されたアプリを開始することを拒否したため、壊れました。そして私はApple開発者ではないので、私は何に署名することはできません...
いくつかの研究の後、私はpy2appを試しました。私はここでさらに一歩進むことができます。と
python setup.py py2app -A
Runnableアプリを作成できます。開発フォルダを使用するため、明らかに別のシステムに移植できません。そして、python setup.py py2app
を使用すると、PY2APPはすべての必要なQTスタッフをコピーしなかったため、生成されたプログラムは開始できません。私は欠けているライブラリを1つずつ追加しようとしましたが、システムはプラグインを見つけることができず、私があきらめました...
QT GUIを使用してpythonスクリプトまたはパッケージをMac上のポータブルアプリに変換するためのレシピで私を助けてくれることができますか?理想的には、レシピはカスタムアプリケーションアイコンの使い方を言うべきですが、これは必須ではありません。
私の実際のパッケージがSOの質問に大きすぎるので、最小の再現可能な例に切り替えました。
from PySide3.QtWidgets import *
import sys
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
hello = QLabel('Hello', self)
hello.move(50, 50)
def run(args):
app = QApplication(args)
main = MainWindow()
main.show()
sys.exit(app.exec_())
if __name__ == '__main__':
run(sys.argv)
そしてこれがpy2appに使用されるsetup.pyファイルです。
from setuptools import setup
APP = ['app.py']
DATA_FILES = []
OPTIONS = {}
setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
私はあなたの問題に対する解決策が見つかると思います ここ 。まず、作成 仮想環境 と同じ仮想環境にすべてのモジュールをインストールします。
mkvirtualenv --python="PATH/TO/PYTHON3.6.5/python.exe" venv
Qt
フレームワークをインストールします
# Install qt via homebrew
brew install qt
# Switch to version 5.11.1
brew switch qt 5.11.1
# Do this to link qmake with qt
brew link qt5 --force
その後、Pyside2をインストールしてください
git clone --recursive https://code.qt.io/pyside/pyside-setup
その後、
cd pyside-setup && git checkout 5.11
PySide2
を構築し、インストールし、QMAKE
インストールに付属のQt
のパスを必ず設定してください。
#To get the path
which qmake
# Make sure that your virtual environment is activated
# Build PySide2 from source
python setup.py install --qmake=<PATH/TO/QMAKE> --build-tests --ignore-git --jobs=8
# Install PySide2
python setup.py build --qmake=/path/to/qmake --build-tests --ignore-git --jobs=8
更新
まず、同じ仮想環境でコードを実行し、それを使用できる標準のMac OSアプリに変換してください。 py2app または pyinstaller 。また、同じプロセスをたどった後に現在のバージョンで動作していない場合は、PY2APPをダウングレードしてみてください。
Sudo easy_install py2app
#or
pip install -U git+https://github.com/metachris/py2app.git@master
Create setup.pyを作成します
py2applet --make-setup app.py
Wrote setup.py
そして、あなたは 設定ファイル または この例を参照 と持っているファイルを含める必要があります。
from setuptools import setup
APP = ['app.py']
DATA_FILES = []
OPTIONS = {
'argv_emulation': True,
'iconfile': 'app.icns'
}
setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
アプリケーションの使用を構築するには
python setup.py py2app -A
アプリを実行するにはこの方法を使わなければなりません
./dist/app.app/Contents/MacOS/app
python setup.py py2app -A
で動作している場合、それはすべて問題が発生していて使用する必要があることを意味します。
rm -rf build dist
python setup.py py2app
問題が発生した場合は、次の参照を参照してください 1 、 2 、。また、 代替方法 アプリをOSに変換する。
私があなたのコメントを読んだ後、私は問題が何であるかを見てみました、そして私が見つけた この そしてそれは問題を解決するかもしれません、またはあなたはbbFreeze
、pyInstaller
またはcx_Freeze
のような代替ツールを使うことができます
私は fbs を使用してアプリを構築しました。 Python + PYQT5アプリケーションを構築することを目的としています(Pyside2を使用することもできます)、そしてそれはMac OSでも(ドキュメント/チュートリアルに従って)作業する必要があります。
Pyinstallerを使用すると、PYQT5の依存関係(特にpyqtgraph
で作業していたとき)が含まれていますが、FBSが大きく機能します。
OSX用にパッケージ化したい場合は、どちらかの場合も
これはおそらくオープンソース開発者にとって最も意味があります
一般的な指示 https://docs.brew.sh/how-to-create-and-maintain-a-tap
これはおそらく閉鎖されたソース開発者にとって最も意味があります
概要: https://developer.apple.com/pple.com/programs/how-it-works/
このプログラムは毎年99USDに費用がかかりますが、あなたはあなたのパッケージ/ファイナルバイナリに署名し、自分自身または彼らのApp Storeに署名することを可能にします
アカウントを作成した後、これがOSXの包装と署名のためのガイドです https://developer.apple.com/forums/thread/128166
% codesign -s <Developer ID Application signing identity> /path/to/code
.Zip
、.dmg
、.pkg
)を選択し、アプリケーションをバンドルする