파이썬을 사용하여 직접 실행 가능한 크로스 플랫폼 GUI 앱을 어떻게 만들 수 있습니까?
파이썬은 여러 플랫폼에서 작동하며 데스크톱 및 웹 응용 프로그램에 사용할 수 있으므로 Mac, Windows 및 Linux 용 실행 파일로 컴파일 할 수있는 방법이 있다고 결론지었습니다.
문제는 어디서 GUI를 시작 해야하는지 또는 어떻게 작성 해야할지 모르겠습니다. 누구든지 이것에 대해 밝힐 수 있고 올바른 방향으로 나를 가리킬 수 있습니까?
먼저 파이썬 바인딩을 사용하는 GUI 라이브러리가 필요하고 파이썬 스크립트를 독립 실행 파일로 변환하는 프로그램이 필요합니다.
Python 바인딩을 사용하는 크로스 플랫폼 GUI 라이브러리 (Windows, Linux, Mac)
물론 많은 것들이 있지만 내가 야생에서 본 가장 인기있는 것은 다음과 같습니다.
- Tkinter - Tk GUI 툴킷 기반 (파이썬 용 사실상의 표준 GUI 라이브러리, 상용 프로젝트 무료)
- WxPython - WxWidgets 기반 (상업용 프로젝트의 경우 무료)
- PyQt 바인딩을 사용하는 Qt 또는 Python을위한 Qt . 전자는 상업적인 프로젝트에 대해 무료가 아닙니다. 후자는 덜 성숙하지만 무료로 사용할 수 있습니다.
전체 목록은 http://wiki.python.org/moin/GuiProgramming 에 있습니다 .
단일 실행 파일 (모든 플랫폼)
- PyInstaller- 가장 활동적인
- fbs- 위의 Qt를 선택한 경우
단일 실행 파일 (Windows)
- py2exe- 가장 인기 있었던
단일 실행 파일 (Linux)
- 고정 -py2exe와 동일한 방식으로 작동하지만 Linux 플랫폼을 대상으로 함
단일 실행 파일 (Mac)
- py2app- 다시, py2exe처럼 작동하지만 Mac OS를 대상으로 함
또 다른 시스템 (아직 허용 된 답변에 언급되지 않음)은 PyInstaller이며 py2exe는 그렇지 않을 때 PyQt 프로젝트에서 작동했습니다. 사용하기 더 쉽다는 것을 알았습니다.
Pyinstaller는 Gordon McMillan의 Python Installer를 기반으로합니다. 더 이상 사용할 수 없습니다.
py2exe의 대체 도구는 Windows 및 Linux 용 실행 파일을 생성 하는 bbfreeze 입니다. py2exe보다 최신이며 계란을 잘 처리합니다. 다양한 응용 프로그램을 구성하지 않고도 마술처럼 더 잘 작동한다는 것을 알았습니다.
기본적으로 Gnome Toolkit의 Python 래퍼 인 PyGTK 도 있습니다 . 이전에 GUI 프로그래밍에 대한 지식이 거의 없기 때문에 Tkinter보다 내 마음을 감싸는 것이 더 쉽다는 것을 알았습니다. 꽤 잘 작동하며 좋은 자습서가 있습니다. 불행히도 Windows 용 Python 2.6 용 설치 프로그램이 아직 없으며 한동안은 아닐 수도 있습니다.
파이썬은 현재 기본적으로 거의 모든 비 Windows OS에 설치되어 있으므로 실제로 확인해야 할 유일한 것은 사용하는 모든 비표준 라이브러리가 설치되어 있다는 것입니다.
python 인터프리터 및 사용하는 라이브러리가 포함 된 실행 파일을 빌드 할 수 있습니다. 그러나 이로 인해 큰 실행 파일이 생성 될 수 있습니다.
MacOS X에는 완전한 독립형 GUI 응용 프로그램을 만들기 위해 Xcode IDE에 대한 지원도 포함되어 있습니다. OS X를 실행하는 모든 사용자가이를 실행할 수 있습니다.
GUI 자체의 경우 :
PyQT 는 거의 참조입니다.
빠른 사용자 인터페이스를 개발하는 또 다른 방법은 웹 앱을 작성하고 로컬로 실행하여 브라우저에 앱을 표시하는 것입니다.
또한 lubos hasko에서 제안한 Tkinter 옵션을 사용하는 경우 Python없이 Windows 환경에서 앱을 실행하도록 portablepy를 시도 할 수 있습니다.
이것이 최선의 방법인지 확신 할 수는 없지만 Windows에 Ruby GUI 응용 프로그램을 배포 할 때 (파이썬이 아니지만 .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에서 파이썬을 사용하지 않은 경우에도 앱을 실행하는 데 필요한 모든 파일을 하나의 폴더에 가져와야합니다 (Windows에 대해 이야기하고 있습니다 ... 애플 OS의 경우 필요가 없습니다) python과 함께 설치 파일을 설치할 필요가 없으므로 실행 파일을 생각합니다.
이 파일을 작성하십시오
1) setup.py를 만듭니다
이 코드로 :
from distutils.core import setup
import py2exe
setup(console=['l4h.py'])
폴더에 저장
2) 프로그램을 setup.py와 같은 폴더에 넣습니다.이 폴더에 배포 할 프로그램을 넣으십시오. es : l4h.py
추신 : 파일 이름을 변경하십시오 (l4h에서 원하는 것으로 바꾸십시오).
3) 실행 폴더에 마우스 오른쪽 버튼으로 클릭 + 이동과 여기에 cmd를 시작 선택) (해당 폴더에서 cmd를
cmd를 4) 쓰기 :> 파이썬 setup.py py2exe에
5) DIST 모든 당신이 필요로하는 파일이있는 폴더
6)을 그것을 압축하고 배포 할 수 있습니다
파이 설치자
cmd에서 설치
**
pip install 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()
PySimpleGUI Documentation에 설명 된대로 실행 하는 .EXE 파일 을 빌드하십시오 .
pyinstaller -wF MyGUIProgram.py
Mac / Windows / Linux 용 Python 을 컴파일 할 필요는 없습니다 . 이 언어는 통역 된 언어이므로 선택한 시스템에 Python 통역사를 설치하면됩니다 (세 가지 플랫폼 모두에서 사용 가능).
크로스 플랫폼에서 작동하는 GUI 라이브러리는 Python의 Tk / Tcl 위젯 라이브러리가 매우 잘 작동하며 충분히 크로스 플랫폼이라고 생각합니다.
Tkinter 는 Tk / Tcl에 대한 파이썬 인터페이스입니다
파이썬 프로젝트 웹 페이지에서 :
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
명령 줄에서 설치 합니다.
참고 URL : https://stackoverflow.com/questions/2933/how-can-i-create-a-directly- executable-cross-platform-gui-app-using-python
'IT story' 카테고리의 다른 글
파이썬에서 10 만 건의 HTTP 요청을 보내는 가장 빠른 방법은 무엇입니까? (0) | 2020.04.07 |
---|---|
"테이블을 다시 작성해야하는 변경 내용 저장 방지"부정적인 영향 (0) | 2020.04.07 |
하나의 열에서 SELECT DISTINCT (0) | 2020.04.07 |
HTTP 1.0 대 1.1 (0) | 2020.04.07 |
CUDA 런타임 API를 사용하여 오류를 확인하는 정식 방법은 무엇입니까? (0) | 2020.04.07 |