문제

시간 제약으로 인해 선택한 언어로서 소규모 크기의 데스크톱 GUI 애플리케이션을 개발해야합니다.

사용자가 작동하는 파이썬 설치가없고 분명히 사용하고있는 GUI 라이브러리가 없다고 가정 할 때, 내 응용 프로그램 독립형을 재분배 할 수있는 GUI 라이브러리 선택은 무엇입니까?

또한 바이너리에 모든 것을 포장하는 방법 합리적인 각 대상 OS의 크기? (내 주요 대상은 Windows 및 Mac OS X입니다)

덧셈:나는 wxpython을보고 있었지만 CX_Freeze로 포장하고 30MB+ binaries를 얻는 것에 대한 많은 공포 이야기를 발견했으며 방법에 대한 진정한 조언이 없습니다. 실제로 포장과 신뢰할 수있는 방법을 수행하십시오.

도움이 되었습니까?

해결책

http://wiki.wxpython.org/creatingstandaloneexecutables

WX의 디버그 빌드를 포함하지 않았다면 그렇게 크지 않아야합니다. 나는 python.dll에 대해 약 4MB와 WX의 SIMILAIR에 대해 약 4MB를 기억하는 것 같습니다.

다른 팁

Python에는 이름이 내장 된 GUI 툴킷이 있습니다 티킨터 TCL 프로그래밍 언어의 TK 라이브러리를 기반으로합니다. 그것은 매우 기본적이며 Windows 양식 또는 GTK에서 기대하는 모든 기능을 갖지는 않지만 플랫폼 독립 툴킷이 있어야한다면 이진을 많이 성장시키고 싶지 않다는 것을 염두에두고 있습니다.

Tkinter는 수백만 개의 위젯/컨트롤 및 옵션이 없기 때문에 사용하기가 어렵지 않으며 최소한 Windows, OSX 및 Linux에 대부분의 Python 배포판에 포함 된 기본 툴킷입니다.

GTK 그리고 QT 더 예쁘고 강력하지만 당신에게 큰 단점이 있습니다. 그들은 세 번째 라이브러리, 특히 소프트웨어에 포함시키기가 약간 어렵게 만드는 많은 의존성을 가진 세 번째 라이브러리에 무겁고 깊이 있습니다.

바이너리 생성에 관해서는 파이썬 코드를 win32 실행 가능한 코드 (.exe 's)로 변환하는 py2exe가 있다는 것을 알고 있지만 OSX와 비슷한 것이 있는지 확실하지 않습니다. 사람들이 소스 코드를 볼 수 있으므로 단일 패키지로 모두 번들로 묶을 수 있기 때문에 걱정하십니까? 독립형 실행 파일을 만들기 위해 필요한 모든 것을 번들로 만들려면 설치자를 쉽게 만들 수 있습니다.

파이썬에서 분포 가능합니다

소프트웨어가 완료 될 때 소프트웨어를 배포하는 방법에 대한 안내서입니다.

http://gajim.org Windows의 경우 Python 및 Pygtk를 사용합니다. 당신은 그들이 어떻게했는지 확인할 수 있습니다. 또한 GUI에 대한 PYQT (및 앞에서 언급 한 WXPYTHON)가 있습니다.

Windows 이외의 플랫폼에 대한 독립형 앱을 구축 한 경험이 없습니다.

그 말 :

Tkinter : py2exe와 잘 작동합니다. Python Megawidgets (Tkinter의 "확장 라이브러리")도 잘 작동하지만 동적 수입으로 펑키 한 작업을 수행하므로 모든 구성 요소를 큰 파일 "PMW.py"로 결합하여 프로젝트에 추가해야합니다 (음, 또한 pmwblt.py 및 pmwcolor.py)도 있습니다. 어딘가 에서이 작업을 수행하는 방법에 대한 지침이 있습니다 (Py2Exe Wiki 또는 PMW 문서에서). TIX (Tkinter와 함께 사용할 수있는 TK로의 확장)는 PY2EXE와 함께 작동하지 않거나 적어도 4 년 전에 제 경험이었습니다.

wxpython Py2Exe 와도 잘 작동합니다. 방금 가지고있는 앱을 확인했습니다. 전체 분포는 약 11MB로 나왔습니다. 그 중 대부분은 WX DLLS 및 .PYD 파일 이었지만 어떻게 피할 것인지 알 수 없습니다. Windows XP를 목표로하는 경우 Setup.py에 매니페스트를 포함해야합니다. 그렇지 않으면 추악 해 보일 것입니다. 보다 이 이메일 자세한 내용은.

나는 py2exe를 직접 사용했습니다 - 정말 쉽습니다 (적어도 작은 앱의 경우).

내가 익숙한 조합 : WXPYTHON, PY2EXE, UPX

분포 크기에 대한 마지막 우려를 해결하는 열쇠는 사용 중입니다. upx DLL을 압축합니다. MACOS 실행 파일을 지원하는 것처럼 보입니다. DLL이 처음로드되면 초기 감압 페널티를 지불합니다.

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