Bagaimana saya bisa membuat ini diatas-eksekusi cross-platform GUI aplikasi menggunakan Python?

Python bekerja pada berbagai platform dan dapat digunakan untuk desktop dan aplikasi web, dengan demikian saya menyimpulkan bahwa ada beberapa cara untuk compile menjadi executable untuk Mac, Windows dan Linux.

Masalah yang sedang saya tidak tahu di mana untuk memulai atau bagaimana untuk menulis sebuah GUI dengan itu, ada yang bisa menjelaskan tentang ini dan mengarahkan saya ke arah yang benar silahkan?

Larutan

Pertama, anda akan perlu beberapa perpustakaan dengan GUI Python binding dan kemudian (jika anda ingin) beberapa program yang akan mengkonversi file script python menjadi standalone executable.

Cross-platform GUI perpustakaan dengan Python binding (Windows, Linux, Mac)

Tentu saja, ada banyak, tapi yang paling populer yang saya've terlihat di alam liar adalah:

  • Tkinter yang berbasis di Tk GUI toolkit (de-facto standar GUI library python, gratis untuk proyek-proyek komersial)
  • Berbasis wxpython berdasarkan WxWidgets (populer, gratis untuk proyek-proyek komersial)
  • Qt menggunakan PyQt binding atau Qt untuk Python. Mantan adalah tidak gratis untuk proyek-proyek komersial. Yang terakhir ini kurang matang, tetapi dapat digunakan secara gratis.

Daftar lengkap adalah di http://wiki.python.org/moin/GuiProgramming

Single executable (semua platform)

Single executable (Windows)

  • py2exe - digunakan untuk menjadi yang paling populer

Single executable (Linux)

  • Membekukan - bekerja dengan cara yang sama seperti py2exe tapi target platform Linux

Single executable (Mac)

  • py2app - lagi-lagi, karya-karya seperti py2exe tapi target Mac OS
Komentar (7)

Sistem lain (tidak disebutkan dalam jawaban yang diterima belum) adalah PyInstaller, yang bekerja untuk sebuah PyQt proyek tambang ketika py2exe tidak akan. Saya menemukan lebih mudah untuk digunakan.

http://www.pyinstaller.org/

Pyinstaller didasarkan pada Gordon McMillan's Python Installer. Yang tidak lagi tersedia.

Komentar (3)

Alternatif alat untuk py2exe adalah bbfreeze yang menghasilkan executable untuk windows dan linux. It's baru dari py2exe dan menangani telur cukup baik. I've ditemukan itu ajaib bekerja dengan baik tanpa konfigurasi untuk berbagai macam aplikasi.

Komentar (0)

Ada's juga PyGTK, yang pada dasarnya adalah sebuah wrapper Python untuk Gnome Toolkit. I've ternyata lebih mudah untuk membungkus pikiran saya sekitar dari Tkinter, datang dari cukup jauh tidak ada pengetahuan pemrograman GUI sebelumnya. Bekerja dengan cukup baik dan memiliki beberapa tutorial yang baik. Sayangnya ada isn't installer untuk Python 2.6 untuk Windows belum, dan mungkin tidak untuk sementara waktu.

Komentar (0)

Sejak python diinstal pada hampir setiap non-OS Windows secara default sekarang, satu-satunya hal yang anda benar-benar perlu untuk membuat yakin adalah bahwa semua non-standar perpustakaan anda gunakan diinstal.

Setelah mengatakan bahwa, itu adalah mungkin untuk membangun executable yang mencakup interpreter python, dan setiap pustaka yang anda gunakan. Ini adalah kemungkinan untuk membuat besar yang dapat dijalankan, namun.

MacOS X bahkan termasuk dukungan dalam Xcode IDE untuk membuat penuh standalone aplikasi GUI. Ini dapat dijalankan oleh setiap pengguna yang menjalankan OS X.

Komentar (0)

Untuk GUI itu sendiri:

PyQT adalah cukup banyak referensi.

Cara lain untuk mengembangkan antarmuka pengguna yang cepat adalah untuk menulis aplikasi web, telah berjalan secara lokal dan menampilkan aplikasi di browser.

Plus, jika anda pergi untuk Tkinter opsi yang disarankan oleh lubos hasko anda mungkin ingin mencoba portablepy untuk memiliki aplikasi anda berjalan pada lingkungan Windows tanpa Python.

Komentar (0)

I'm tidak yakin bahwa ini adalah cara terbaik untuk melakukan hal ini, tetapi ketika saya'm menyebarkan Ruby aplikasi GUI (tidak Python, tapi sama "masalah" sejauh .exe's prihatin) pada Windows, saya hanya menulis pendek launcher di C# yang memanggil saya script utama. Mengkompilasi untuk eksekusi, dan saya kemudian memiliki sebuah aplikasi yang dapat dieksekusi.

Komentar (3)
# 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

Maka anda harus menggunakan py2exe, misalnya, untuk membawa di satu folder, semua file yang dibutuhkan untuk menjalankan aplikasi, bahkan jika pengguna tidak python pada pc nya (saya berbicara dari windows... untuk apple os tidak perlu dari file eksekusi, saya pikir, karena itu datang dengan python di dalamnya tanpa perlu menginstal itu.

Membuat file ini

  1. Membuat setup.py

    dengan kode ini:

from distutils.core import setup
import py2exe

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

simpan dalam sebuah folder

  1. Masukan program anda di folder yang sama dari setup.py dimasukkan ke dalam folder ini program yang anda inginkan untuk membuat distribuitable: es: l4h.py

ps: mengubah nama file (dari l4h untuk apa pun yang anda inginkan, itu adalah contoh)

  1. Jalankan cmd dari folder itu (pada folder, klik kanan + shift dan pilih start cmd di sini)
  2. tulis di cmd:>python setup.py py2exe
  3. dalam folder dist ada semua file yang anda butuhkan
  4. anda dapat zip dan mendistribusikannya

Pyinstaller

Menginstalnya dari cmd

**

pip menginstal pyinstaller

**

Jalankan dari cmd dari folder di mana file tersebut

**

pyinstaller file.py

**

Komentar (0)

PySimpleGUI membungkus tkinter dan bekerja pada Python 3 dan 2.7. Hal ini juga berjalan pada Qt, berbasis wxpython dan di web browser, menggunakan sumber kode yang sama untuk semua platform.

Anda dapat membuat custom Gui yang memanfaatkan semua widget yang sama yang anda temukan di tkinter (slider, checkbox, tombol radio, ...). Kode cenderung untuk menjadi sangat kompak dan mudah dibaca.

#!/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()

Seperti yang dijelaskan dalam PySimpleGUI Dokumentasi, untuk membangun .File EXE anda jalankan:

pyinstaller -wF MyGUIProgram.py

Komentar (0)

Anda don't perlu compile python for Mac/Windows/Linux. Itu adalah bahasa ditafsirkan, sehingga anda hanya perlu memiliki interpreter Python yang terinstal pada sistem anda (tersedia untuk semua tiga platform).

Adapun GUI library yang bekerja lintas platform, Python's Tk/Tcl widget perpustakaan bekerja sangat baik, dan saya percaya cukup cross platform.

Tkinter adalah python antarmuka untuk Tk/Tcl

Dari proyek python web anda:

Tkinter tidak hanya GuiProgramming toolkit untuk Python. Hal ini namun yang paling umum digunakan, dan hampir hanya satu yang portabel antara Unix, Mac dan Windows

Komentar (6)

Anda dapat menggunakan appJar untuk dasar pengembangan 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()

Lihat dokumentasi di appJar situs.

Instalasi ini dibuat dengan pip menginstal appjar dari baris perintah.

Komentar (0)