IT

Python을 사용하여 직접 실행 가능한 크로스 플랫폼 GUI 앱을 만듭니다.

itgroup 2022. 12. 27. 21:16
반응형

Python을 사용하여 직접 실행 가능한 크로스 플랫폼 GUI 앱을 만듭니다.

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

문제는 어디서부터 어떻게 GUI를 작성해야 할지 모르겠다는 것입니다.누구라도 이 점을 조명하고 올바른 방향을 가르쳐 주실 수 있겠습니까?

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

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

물론 여러 가지가 있지만, 제가 야생에서 본 가장 인기 있는 것은 다음과 같습니다.

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

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

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

  • PyInstaller - 가장 액티브한 (와 함께 사용 가능)PyQt)
  • fbs - 위의 Qt를 선택한 경우

단일 실행 파일(Windows)

  • py2exe - 가장 많이 사용되었던

단일 실행 파일(Linux)

  • 프리즈 - py2exe와 동일하게 동작하지만 Linux 플랫폼을 대상으로 합니다.

단일 실행 파일(Mac)

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

또 다른 시스템(아직 승인된 답변에서 언급되지 않음)은 PyInstaller로, py2exe가 작동하지 않을 때 내 PyQt 프로젝트에서 작동했습니다.사용하기 쉬웠어요.

http://www.pyinstaller.org/

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

py2exe의 대체 도구는 bbfreeze입니다.이 도구는 Windows 및 Linux용 실행 파일을 생성합니다.py2exe보다 최신이고 달걀도 꽤 잘 다룰 수 있습니다.다양한 어플리케이션의 설정을 하지 않아도 마법처럼 동작하는 것을 알 수 있었습니다.

PyGTK도 있습니다.이것은 기본적으로 Gnome Toolkit용 Python 래퍼입니다.이전에는 GUI 프로그래밍에 대한 지식이 거의 없었기 때문에 Tkinter에 비해 쉽게 생각을 정리할 수 있었습니다.꽤 잘 작동하고 튜토리얼도 잘 되어 있어요.안타깝게도 Python 2.6 for Windows용 설치 프로그램은 아직 없으며 당분간 없을 것입니다.

python은 기본적으로 Windows OS 이외의 거의 모든 OS에 설치되어 있기 때문에 사용하는 모든 비표준 라이브러리가 설치되어 있어야 합니다.

Python 인터프리터와 사용하는 라이브러리를 포함한 실행 파일을 작성할 수 있습니다.그러나 이로 인해 큰 실행 파일이 생성될 수 있습니다.

MacOS X에는 완전한 독립형 GUI 앱을 만들 수 있는 Xcode IDE 지원도 포함되어 있습니다.OS X 를 실행하고 있는 모든 유저가 실행할 수 있습니다.

GUI 자체의 경우:

PyQT가 거의 참고 자료입니다.

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

또한 lubos hasko가 제안하는 Tkinter 옵션을 선택한다면 portablepy를 사용하여 Python이 없는 Windows 환경에서 앱을 실행할 수 있습니다.

이것이 최선의 방법인지는 모르겠지만, Windows에 Ruby GUI 앱(Python은 아니지만 .exe와 같은 "문제"가 있다)을 도입할 때는 메인 스크립트를 호출하는 짧은 런처를 C#에 씁니다.실행 파일로 컴파일 되고 응용 프로그램 실행 파일이 생성됩니다.

PySimple(파이 심플)GUI는 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()

게시된 PySimple에서 생성된 이미지

PySimple에서 설명한 바와 같이빌드하려면 , GUI 메뉴얼을 참조해 주세요.실행하는 EXE 파일:

pyinstaller -wF MyGUIProgram.화이

!!!! KIVY!!!

아무도 Kivy에 대해 언급하지 않은 것을 보고 놀랐습니다!!!

Tkinter로 프로젝트를 진행한 적이 있습니다만, 많이 개선되었다고 주장하지만, 아직 윈도 98의 느낌을 받고 있기 때문에 Kivy로 전환했습니다.

도움이 된다면 튜토리얼 시리즈를 계속 보고 있는데...

kivy의 외관을 알기 쉽게 하기 위해서, 이하를 참조해 주세요(내가 작업하고 있는 프로젝트).

현재 진행 중인 프로젝트

그리고 나는 이제 겨우 일주일째 그것을 하고 있다!당신이 물어본 키비의 혜택은?체크해 주세요

이것을 선택한 이유는 외관, 모바일에서도 사용할 수 있기 때문입니다.

# 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

Then you should use py2exe, for example, to bring in one folder all the files needed to run the app, even if the user has not python on his pc (I am talking of windows... for the apple os there is no need of an executable file, I think, as it come with python in it without any need of installing it.

이 파일 만들기

  1. 설정을 만듭니다.화이

다음 코드 포함:

from distutils.core import setup
import py2exe

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

그것을 폴더에 저장하다.

  1. 프로그램을 setup.py 와 같은 폴더에 넣습니다.이 폴더에 배포 가능한 프로그램을 넣습니다.es : l4h.py

ps: 파일 이름 변경(l4h에서 원하는 이름으로 변경, 예를 들어)

  1. 해당 폴더에서 cmd를 실행합니다(폴더에서 + shift를 마우스 오른쪽 버튼으로 클릭하고 여기서 start cmd를 선택합니다).
  2. cmd:> setup에 기입합니다.py2exe
  3. dist 폴더에는 필요한 모든 파일이 있습니다.
  4. 지퍼로 압축하여 배포할 수 있습니다.

파이인스톨러

cmd에서 설치

**

pip install pyinstaller

**

파일이 있는 폴더의 cmd에서 실행합니다.

**

pyinstaller 파일.화이

**

갱신하다

이 투고를 읽고 pyinstaller를 사용하여 적절한 방법으로 파일 및 이미지를 1개 포함하는 Windows 상에서 exe를 작성하십시오.https://pythonprogramming.altervista.org/auto-py-to-exe-only-one-file-with-images-for-our-python-apps/

Mac/Windows/Linux용 python을 컴파일할 필요가 없습니다.이것은 통역 언어이므로, Python 인터프리터를 선택한 시스템에 설치하면 됩니다(3개의 플랫폼 모두에서 사용 가능).

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

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

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

Tkinter는 Python을 위한 유일한 Gui Programming 툴킷이 아닙니다.단, 가장 일반적으로 사용되며 Unix, Mac 및 Windows 간에 이식 가능한 것은 거의 유일합니다.

하시면 됩니다.appJarGUI를 사용합니다.

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

appJar 사이트에서 설명서를 참조하십시오.

인스톨은 다음과 같이 행해집니다.pip install appjar맨맨드커

다음 세 가지 작업을 수행할 수 있습니다.

먼저 .exe 파일과 같은 스탠드아론 애플리케이션으로서 코드를 기동할 수 있는 GUI Designer를 찾습니다.MatDeck 버전(GUI Designers를 사용하는 사람에게는 MD Python Designer를 추천합니다)을 사용하고 있습니다(다른 버전을 사용하고 있기 때문에 잘 모르겠습니다).그렇게 함으로써, 프로그램을 실행하는 모든 PC에 소프트웨어를 인스톨 할 필요는 없습니다.

두 번째 옵션은 문제를 부분적으로 우회하는 것입니다.GUI를 웹 페이지로 기동합니다.이것에 의해, 모든 OS가 이용할 수 있는 것은 아니지만, 대부분의 OS와 가장 호환성이 높아집니다.다시 한 번 말씀드리지만, 컴포넌트를 웹 호환 포맷으로 변환할 수 있는 GUI Designer가 필요합니다.한 번 해봤는데 같은 버전의 MatDeck(Visionary Deck)를 사용했기 때문에 이번에는 MD Python Designer가 GUI를 웹 어셈블리로 변환할 수 있을지 모르기 때문에 추천하지 않습니다.Visionary Deck는 테스트해 보았습니다.다른 모든 소프트웨어와 마찬가지로 수학과 물리 관련 업무를 많이 하기 때문에 자주 사용하는 소프트웨어일 뿐입니다.

세 번째 옵션도 이 문제를 우회하는 것입니다만, Tkinter에서 실행해, Python IDE 또는 단순한 오래된 Python이 있는 것을 확인하고 코드를 실행하면, GUI 가 기동합니다.이것은 좋은 해결책이고 아마도 가장 간단할 수도 있지만 나는 그것을 최단이나 최선으로 분류하지 않을 것이다.몇 개의 운영 체제와 컴퓨터 사이에서만 전환할 계획이라면 이것이 최선의 선택일 것입니다.

언급URL : https://stackoverflow.com/questions/2933/create-a-directly-executable-cross-platform-gui-app-using-python

반응형