Python을 사용하여 직접 실행 가능한 크로스 플랫폼 GUI 앱을 어떻게 만들 수 있나요?

StackOverflow https://stackoverflow.com/questions/2933

문제

Python은 여러 플랫폼에서 작동하고 데스크톱 및 웹 응용 프로그램에 사용할 수 있으므로 Mac, Windows 및 Linux용 실행 파일로 컴파일하는 방법이 있다고 결론을 내렸습니다.

문제는 어디서부터 시작해야 할지, GUI를 작성하는 방법을 모른다는 것입니다. 누구든지 이것에 대해 설명하고 올바른 방향을 알려줄 수 있습니까?

도움이 되었습니까?

해결책

먼저 Python 바인딩이 포함된 일부 GUI 라이브러리가 필요하고 (원하는 경우) Python 스크립트를 독립 실행형 실행 파일로 변환하는 일부 프로그램이 필요합니다.

Python 바인딩이 포함된 크로스 플랫폼 GUI 라이브러리(Windows, Linux, Mac)

물론 많이 있지만 제가 본 것 중 가장 인기 있는 것은 다음과 같습니다.

  • Tkinter - 기반으로 Tk GUI 툴킷 (파이썬용 사실상 표준 GUI 라이브러리, 상용 프로젝트에는 무료)
  • WxPython - 기반으로 WxWidget (인기, 상업용 프로젝트의 경우 무료)
  • Qt 사용하여 PyQt 바인딩 또는 파이썬용 Qt.전자는 상업용 프로젝트에서는 무료가 아닙니다.후자는 덜 성숙하지만 무료로 사용할 수 있습니다.

전체 목록은 다음 위치에 있습니다. http://wiki.python.org/moin/GuiProgramming

단일 실행 파일(모든 플랫폼)

단일 실행 파일(Windows)

  • py2exe - 예전에는 가장 인기가 많았어요

단일 실행 파일(Linux)

  • 꼭 매달리게 하다 - py2exe와 동일한 방식으로 작동하지만 Linux 플랫폼을 대상으로 합니다.

단일 실행 파일(Mac)

  • py2app - 다시 말하지만, py2exe처럼 작동하지만 Mac OS를 대상으로 합니다.

다른 팁

(아직 허용된 답변에 언급되지 않은) 또 다른 시스템은 PyInstaller입니다. 이는 py2exe가 작동하지 않을 때 내 PyQt 프로젝트에서 작동했습니다.사용하기가 더 쉽다는 것을 알았습니다.

http://www.pyinstaller.org/

Pyinstaller는 Gordon McMillan의 Python Installer를 기반으로 합니다.더 이상 사용할 수 없습니다.

py2exe의 대체 도구는 다음과 같습니다. bb동결하다 Windows 및 Linux용 실행 파일을 생성합니다.py2exe보다 최신 버전이며 계란을 아주 잘 처리합니다.다양한 응용 프로그램에 대해 구성 없이도 마술처럼 더 잘 작동한다는 것을 알았습니다.

또한 있습니다 PyGTK, 이는 기본적으로 Gnome Toolkit용 Python 래퍼입니다.나는 이전에 GUI 프로그래밍에 대한 지식이 거의 없었기 때문에 Tkinter보다 내 마음을 감싸는 것이 더 쉽다는 것을 알았습니다.꽤 잘 작동하고 좋은 튜토리얼도 있습니다.불행하게도 Windows용 Python 2.6 설치 프로그램은 아직 없으며 당분간은 제공되지 않을 수도 있습니다.

Python은 이제 Windows가 아닌 거의 모든 OS에 기본적으로 설치되므로 실제로 확인해야 할 유일한 것은 사용하는 모든 비표준 라이브러리가 설치되어 있다는 것입니다.

그렇긴 하지만, Python 인터프리터와 사용하는 모든 라이브러리를 포함하는 실행 파일을 구축하는 것이 가능합니다.그러나 이렇게 하면 큰 실행 파일이 생성될 가능성이 높습니다.

MacOS X에는 완전한 독립 실행형 GUI 앱을 생성하기 위한 Xcode IDE 지원도 포함되어 있습니다.이는 OS X를 실행하는 모든 사용자가 실행할 수 있습니다.

GUI 자체의 경우:

PyQT 거의 참고가 됩니다.

빠른 사용자 인터페이스를 개발하는 또 다른 방법은 웹 앱을 작성하고 로컬로 실행하고 브라우저에 앱을 표시하는 것입니다.

또한 Lubos Hasko가 제안한 Tkinter 옵션을 찾으면 Python이없는 Windows 환경에서 앱을 실행하도록 PortablePy를 시도해 볼 수 있습니다.

이것이 최선의 방법인지는 잘 모르겠지만 Windows에서 Ruby GUI 앱(Python은 아니지만 .exe와 관련하여 동일한 "문제"가 있음)을 배포할 때 다음과 같이 작성합니다. 내 기본 스크립트를 호출하는 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

그런 다음 예를 들어 py2exe를 사용하여 사용자가 자신의 PC에 Python을 설치하지 않은 경우에도 앱을 실행하는 데 필요한 모든 파일을 하나의 폴더로 가져와야 합니다(Windows에 대해 이야기하고 있습니다...Apple OS의 경우 실행 파일이 필요하지 않다고 생각합니다. Python을 설치할 필요 없이 Python이 포함되어 있기 때문입니다.

이 파일 만들기

1) setup.py를 만듭니다.

이 코드를 사용하면:

from distutils.core import setup
import py2exe

setup(console=['l4h.py'])

폴더에 저장하세요

2) 프로그램을 동일한 setup의 폴더에 넣으십시오.예:l4h.py

추신:파일 이름을 변경합니다(예를 들어 l4h에서 원하는 이름으로 변경)

3) 해당 폴더에서 cmd를 실행합니다(폴더에서 마우스 오른쪽 버튼을 클릭하고 Shift를 누른 후 여기서 cmd 시작을 선택합니다).
4) cmd:>python setup.py py2exe에 작성합니다.
5) dist 폴더에는 필요한 모든 파일이 있습니다
6) 압축하여 배포할 수 있습니다.

파이 인스톨러

cmd에서 설치하세요.

**

pip 설치 pyinstaller

**

파일이 있는 폴더의 cmd에서 실행하세요.

**

pyinstaller 파일.py

**

PySimpleGUI는 tkinter를 래핑하고 Python 3 및 2.7에서 작동합니다.또한 모든 플랫폼에 동일한 소스 코드를 사용하여 Qt, WxPython 및 웹 브라우저에서 실행됩니다.

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()

Image created from posted PySimpleGUI code

에서 설명했듯이 PySimpleGUI 문서, 에게 .EXE 파일 빌드 당신은 다음을 실행합니다 :

pyinstaller -wF MyGUIProgram.py

그럴 필요는 없습니다 엮다 Mac/Windows/Linux용 Python.이는 해석된 언어이므로 선택한 시스템에 Python 해석기를 설치하기만 하면 됩니다(세 가지 플랫폼 모두에서 사용 가능).

크로스 플랫폼에서 작동하는 GUI 라이브러리의 경우 Python의 Tk/Tcl 위젯 라이브러리는 매우 잘 작동하며 크로스 플랫폼으로도 충분하다고 생각합니다.

Tkinter Tk/Tcl에 대한 Python 인터페이스입니다.

Python 프로젝트 웹페이지에서:

Tkinter는 파이썬을위한 유일한 구이 프로 그램 툴킷이 아닙니다.그러나 가장 일반적으로 사용되는 것은 유니, 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()

GUI when running

다음 문서를 참조하세요. appJar 사이트.

설치는 다음과 같이 이루어집니다. pip install appjar 명령줄에서.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top