回答:
最初に、Pythonバインディングを含むGUIライブラリが必要です。次に、(必要に応じて)pythonスクリプトをスタンドアロンの実行可能ファイルに変換するプログラムが必要です。
Pythonバインディングを備えたクロスプラットフォームGUIライブラリ(Windows、Linux、Mac)
もちろん、たくさんありますが、私が野生で見た中で最も人気があるのは:
完全なリストはhttp://wiki.python.org/moin/GuiProgrammingにあります
単一の実行可能ファイル(すべてのプラットフォーム)
PyQt
)単一の実行可能ファイル(Windows)
単一の実行可能ファイル(Linux)
単一の実行可能ファイル(Mac)
別のシステム(まだ受け入れられていない回答には記載されていません)はPyInstallerです。使いやすいと思いました。
PyinstallerはGordon McMillanのPythonインストーラーに基づいています。これはもう利用できません。
py2exeの代替ツールはbbfreezeで、WindowsおよびLinuxの実行可能ファイルを生成します。py2exeよりも新しく、卵を非常にうまく処理します。多種多様なアプリケーションの設定なしで、魔法のようにうまく機能することがわかりました。
現在、PythonはデフォルトでWindows以外のほぼすべてのOSにインストールされているため、実際に確認する必要があるのは、使用するすべての非標準ライブラリがインストールされていることだけです。
そうは言っても、Pythonインタープリターと使用するライブラリーを含む実行可能ファイルをビルドすることは可能です。ただし、これにより大きな実行可能ファイルが作成される可能性があります。
MacOS Xには、完全なスタンドアロンGUIアプリを作成するためのXcode IDEのサポートさえ含まれています。これらは、OS Xを実行しているすべてのユーザーが実行できます。
これが最善の方法かどうかはわかりませんが、Ruby GUIアプリ(Pythonではなく、.exeに関する限り同じ「問題」)をWindowsにデプロイするときは、メインスクリプトを呼び出すC#の短いランチャー。コンパイルして実行可能ファイルにしてから、アプリケーションの実行可能ファイルを作成します。
# I'd use tkinter for python 3
import tkinter
tk = tkinter.Tk()
tk.geometry("400x300+500+300")
l = Label(tk,text="")
l.pack()
e = Entry(tk)
e.pack()
def click():
e['text'] = 'You clicked the button'
b = Button(tk,text="Click me",command=click)
b.pack()
tk.mainloop()
# After this I would you py2exe
# search for the use of this module on stakoverflow
# otherwise I could edit this to let you know how to do it
次に、たとえばpy2exeを使用して、ユーザーが自分のPCでpythonを使用していなくても、アプリを実行するために必要なすべてのファイルを1つのフォルダーに取り込む必要があります(Windowsについて話している...アップルOSの場合は必要ありません)実行可能ファイルの場合、Pythonがインストールされている必要はありません。
このコードで:
from distutils.core import setup
import py2exe
setup(console=['l4h.py'])
2)プログラムをsetup.pyと同じフォルダに配置します。このフォルダに、配布可能にするプログラムを配置します。es:l4h.py
3)そのフォルダーからcmdを実行します(フォルダーで、右クリック+ Shiftを押し、ここで[cmdを開始]を選択します)
4)cmd:> python setup.py py2exeと書き込み
ます5)distフォルダーに必要なすべてのファイルがあります
6)あなたは圧縮して配布できます
**
pipインストールpyinstaller
**
**
pyinstaller file.py
**
PySimpleGUIはtkinterをラップし、Python 3および2.7で動作します。また、Qt、WxPython、およびWebブラウザーで実行され、すべてのプラットフォームで同じソースコードを使用します。
tkinterにある同じウィジェット(スライダー、チェックボックス、ラジオボタンなど)をすべて利用するカスタムGUIを作成できます。コードは非常にコンパクトで読みやすい傾向があります。
#!/usr/bin/env python
import sys
if sys.version_info[0] >= 3:
import PySimpleGUI as sg
else:
import PySimpleGUI27 as sg
layout = [[ sg.Text('My Window') ],
[ sg.Button('OK')]]
window = sg.Window('My window').Layout(layout)
button, value = window.Read()
PySimpleGUI Documentationで説明されているように、実行する.EXEファイルをビルドするには:
pyinstaller -wF MyGUIProgram.py
Mac / Windows / Linux用にpython をコンパイルする必要はありません。これはインタープリター型言語であるため、選択したシステムにPythonインタープリターをインストールするだけで済みます(3つのプラットフォームすべてで使用可能です)。
クロスプラットフォームで機能するGUIライブラリについては、PythonのTk / Tclウィジェットライブラリは非常によく機能し、十分にクロスプラットフォームであると私は信じています。
TkinterはTk / Tclへのpythonインターフェイスです
PythonプロジェクトのWebページから:
TkinterはPython用の唯一のGuiProgrammingツールキットではありません。ただし、これは最も一般的に使用されるものであり、Unix、Mac、Windows間で移植可能なものはほとんどありません。
appJar
基本的なGUI開発に使用できます。
from appJar import gui
num=1
def myfcn(btnName):
global num
num +=1
win.setLabel("mylabel", num)
win = gui('Test')
win.addButtons(["Set"], [myfcn])
win.addLabel("mylabel", "Press the Button")
win.go()
appJarサイトのドキュメントを参照してください。
インストールはpip install appjar
コマンドラインから行います。
!!! キビ!!!
誰もKivyに言及していないのを見て私は驚きました!!!
Tkinterを使用してプロジェクトを行ったことがありますが、Tkinterは大幅に改善されたと主張していますが、それでもWindows 98の雰囲気が残っているため、Kivyに切り替えました。
それが役立つ場合、私はチュートリアルシリーズに従っています...
kivyがどのように見えるかのアイデアを与えるために、これを見てください(私が取り組んでいるプロジェクト):
そして、私は今やっと一週間もそれに取り組んでいます!あなたが求めるKivyのメリットは?これをチェック
私がこれを選んだ理由は、その外観とモバイルでも使用できることです。