Razvoj aplikacija s Python 3, Glade i GTK + 3 na Windowsima

I

U GNU / Linuxu razvoj aplikacija s Pythonom 3, Gladeom i GTK + 3 vrlo je jednostavan, paketi dolaze po defaultu u većini distribucija.

Kroz Proplanak možemo brzo i jednostavno stvoriti korisničko sučelje, a zatim ih koristiti zajedno s Pythonom. Da biste to postigli koristite PyGObject zahvaljujući sustavu introspekcije koji nudi GNOME, što znatno olakšava brzi razvoj aplikacija (RAD); također je moguće koristiti naša sučelja kreirana s Glade iz drugih programskih jezika.

Problem nastaje kada svoje aplikacije želimo koristiti u sustavu Microsoft Windows, jer donedavno paketi za ovaj sustav nisu službeno postojali.

Ovim vodičem namijenjeno je da se aplikacije izrađene u GNU / Linuxu koristeći Python 3 i GTK + 3 pokreću bez problema u sustavu Windows.

zahtjevi

  • Python 3.3
  • Gtk + 3
  • Glade 3.14 ili noviji (GUI dizajner)
  • pygobject

Instalacija na Windows

Započet će stvaranjem mape zvane softver ili neki drugi po vašoj želji i u njega ćemo spremiti sve preuzete pakete.

Preuzmite instalacijske pakete

Preuzmite Python 3.3

Može se preuzeti sa službene stranice Python python.org

Preuzmite instalacijski program Python

Preuzmite instalacijski program Python

Klikom na vezu (Windows Installer) preuzet će se instalacijski program Python.

Preuzmite Glade

Preuzmi stranicu: proplanak.gnome.org

Inačice Python i Glade su 32-bitne, ali besprijekorno rade na 64-bitnim sustavima

Stranica proplanaka

Stranica proplanaka

Preuzmite PyGObject

Preuzmi stranicu: https://wiki.gnome.org/PyGObject

Moramo preuzeti verziju za GTK + 3

PyGObject

PyGObject

PyGObject u Google kodu

PyGObject u Google kodu

Instaliranje paketa

Do ovog trenutka već imamo sve preuzete pakete u mapi softver i kako smo preuzeli svaki paket, prvo ćemo započeti s instalacijom Pythona.

Preuzeti paketi

Preuzeti paketi

Instalacija Pythona

Instalacija je vrlo jednostavna, čarobnjak će nas voditi kroz postupak; Sve opcije ostavljamo označene prema zadanim postavkama.

Instalacijski program Pythona

Instalacijski program Pythona

Kao što se vidi na slici, Python se instalira u mapu C: \ Python33 \ Prema zadanim postavkama ostavljamo ga kakav jest i nastavljamo s instalacijom.

Mapa za instalaciju Pythona

Mapa za instalaciju Pythona

U ovom trenutku instalacije odabiremo opciju Dodajte python.exe u Put, sa svrhom da se prilikom pokretanja Python interpretera izvrši bez potrebe za ručnim dodavanjem na sistemsku stazu.

Dodajte Python u sistemsku stazu

Dodajte Python u sistemsku stazu

Zatim dovršimo instalaciju i Python će biti instaliran na naš sustav.

Instalacija proplanaka

Instalacija Gladea ne predstavlja veliku komplikaciju, mi pokrećemo instalacijski program i slijedimo korake čarobnjaka.

Instalirajte proplanak

Instalirajte proplanak

Instalacija PyGObject-a

Preuzeli smo paket pygi-aio-3.4.2rev11.7z, ovaj paket uključuje PyGObject za Python 3.3 i GTK + 3 knjižnice za Windows, koji je komprimiran sa 7-zip, raspakiramo ga i imat ćemo mapu sa sljedećim sadržajem:

Sadržaj mape pygi-aio-3.4.2rev11.7

Sadržaj mape pygi-aio-3.4.2rev11.7

Sada kopiramo mapu gtk a C: \ Python33 \ Lib \ web-paketi tu se instaliraju paketi treće strane za Python.

Kopiraj gtk mapu

Kopiraj gtk mapu

Mapa Gtk na C: \ Python33 \ Lib \ site-paketi

Mapa Gtk na C: \ Python33 \ Lib \ site-paketi

Vraćamo se u našu mapu pygi-aio-3.4.2rev11 i otvaramo mapu py33 za verziju Pythona koja je 3.3

Sadržaj mape py33

Sadržaj mape py33

Mi odabiremo sav sadržaj iz mape py33 i kopiramo ga natrag u mapu C: \ Python33 \ Lib \ web-paketi, od nas će se tražiti da promiješamo i prepišemo, odgovaramo potvrdno. Sadržaj mape web-paketi bilo bi kao što je prikazano na sljedećoj slici:

Kopirajte sadržaj mape py33 u C: \ Python33 \ Lib \ site-pakete

Kopirajte sadržaj mape py33 u C: \ Python33 \ Lib \ site-pakete

Provjera ispravne instalacije PyGobject i GTK + 3

Da bismo provjerili je li naša instalacija ispravna, otvaramo Python IDLE i uvozimo biblioteke GTK + 3, a ako nemamo nikakvu poruku o pogrešci, sve će biti učinjeno ispravno.

from gi.repository import Gtk

PyGobject i GTK + 3 su ispravno instalirani

PyGobject i GTK + 3 su ispravno instalirani


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Joaquin dijo

    A zašto GTK? Ne bi li bilo bolje razvijati se u QT? osim što je multiplatformna i mnogi kažu da je to budućnost

    1.    artus dijo

      Pa, dvije izvrsne grafičke biblioteke na radnoj površini GNU / Linux su GTK i QT, svaka odabere onu koja više voli. Nema razloga za borbu.

      Razlika između GTK i QT je u tome što je potonji okvir, uistinu vrlo dobar, ali kao okvir troši malo više resursa.

      Na primjer, Mozilla Firefox, Google Chrome, LibreOffice i dugački itd. Izrađeni su s GTK-om; To ne znači da je bolji od QT-a, svatko bi trebao odabrati onaj koji odgovara njegovim željama i potrebama, ne želimo o tome raspravljati.

      1.    pandev92 dijo

        Google chrome od verzije 33, ostavite gtk.

  2.   Rolo dijo

    i zašto objašnjenje za Windows, a ne za Linux

    1.    Germán dijo

      Je li to zato što je u Linuxu sve već spakirano i u službenim spremištima svake distro? Na primjer, u Fedori već imam instalirane Python 3, Gtk + 3 i PyGobject prema zadanim postavkama. Ako želim Glade, to je samo "yum install glade". Lako zar ne? 🙂

    2.    artus dijo

      Jer kao što Germán kaže, za GNU / Linux distribucije već su zapakirane i vrlo je jednostavno instalirati ih; na primjer, instalirati glade u Debian vrlo je jednostavno:
      sklonost instalirati proplanak

  3.   Marcelo dijo

    Ako želim koristiti Python 2.7, hoće li koraci biti isti?
    Očito je da bi instaliranje 2.7-bitnog Pythona 32 (čak i ako koristite 64-bitni OS), umjesto mape py33, išlo 2.7. Bi li uspjelo?
    Hvala Vam.

    1.    artus dijo

      Pa da, ako imate problema, ostavite mi komentar.

      Sreća.

      1.    Marcelo dijo

        Hvala, probao sam i za sada mi "Hello world" djeluje.

        Vidim mogu li dobiti kakav dobar vodič za pyGTK3 ili kako god se već zove i bilo kakve probleme, upozorenje.

          1.    Marcelo dijo

            Caramba! Hvala puno!

          2.    Marcelo dijo

            Testiranje GTK3 s Pythonom 2.7 na sustavu Windows i praćenje vodiča. Zasad svi programi rade za mene, osim onog u poglavlju 14 (IconView -> https://python-gtk-3-tutorial.readthedocs.org/en/latest/iconview.html)

            Donosi mi sljedeću pogrešku:
            Traceback (najnoviji zadnji poziv):
            Datoteka "C: \ Users \ User \ Desktop \ test.py", redak 24, u
            win = IconViewWindow ()
            Datoteka "C: \ Users \ User \ Desktop \ test.py", redak 19, u __init__
            pixbuf = Gtk.IconTheme.get_default (). load_icon (ikona, 64, 0)
            Datoteka "C: \ Python27 \ lib \ site-package \ gi \ types.py", redak 47, u funkciji
            return info.invoke (* args, ** kwargs)
            GError: Ikona 'gtk-cut' nije prisutna u temi

            Pokušao sam s drugim ikonama, a ni to ne radi. Trebam li instalirati temu? Hvala od sada.

          3.    Marcelo dijo

            Kao ni Primjer 19. Povuci i ispusti.

            Funkcija koja poziva u oba slučaja i tu dobivam pogrešku je:

            pixbuf = Gtk.IconTheme.get_default (). load_icon (ime_ikona, 16, 0)

            Ne mogu pronaći ikonu, ali u drugim primjerima možete ih koristiti. Donosi mi pogrešku samo kada je želim koristiti s tom funkcijom (ovdje se ime_imena može zamijeniti vrijednošću kao što je Gtk.STOCK_CUT ili bilo što drugo i daje potpuno istu pogrešku).

          4.    Marcelo dijo

            Stalno razgovaram sa sobom. U ostalim primjerima meni odgovara što se slike učitavaju na gumbe. Ne mogu učitati ikone s funkcijom koja dolazi u dva primjera koja sam ranije dao.

          5.    artus dijo

            Mislim da je pogreška jasna:
            GError: Ikona 'gtk-cut' nije prisutna u temi

            Izgleda da ta ikona nije dostupna, upotrijebite drugu ikonu. Vjerojatno održavatelj paketa nije sadržavao ikone tema ili ga nije moguće pronaći u zadanom putu, upotrijebite GNU / Linux distribuciju i provjerite pojavljuje li se ista pogreška i dalje.

            Što se tiče pitanja 19, čini se da je povezano s verzijom PyGobject, na vrhu dokumentacije stoji:

            bilješke
            Verzije PyGObject = 3.0.3 potrebne su za rad sljedećih primjera.

            Verzija koju imate je 3.0, isprobajte GNU / Linux distribuciju; a zatim moramo pričekati da ažuriraju paket (za Windows) ili ga u svakom slučaju možete sami sastaviti.

            Pozdrav i kreni dalje.

          6.    Marcelo dijo

            U Ubuntuu svi primjeri tutorijala rade savršeno za mene. Na sustavu Windows još uvijek ne radi. Morat ću pričekati. Još jedan koji ne hoda je primjer Spinnera, koji ne radi animaciju. Pozdrav i hvala.

  4.   Jošua dijo

    Slijedio sam vodič za instalaciju i sve instalirao korak po korak.
    I izvršavanje sljedećeg koda:
    iz gi.repozitorija uvoz Gtk

    razred FiestraPrincipal:
    def __init __ (samo):
    filename = "/ data / dam / Python samples / Saudoform"
    konstruktor = Gtk.builder ()
    constructor.add_from_file (naziv datoteke)
    #dictionary gdje vezujemo sinais s događajima
    sinais = {
    «ClickedAccept»: self.clic_boton,
    "ActivateTextCadro": self.clic_boton,
    "DestroyFiestra": Gtk.main_quit

    }
    konstruktor.povezani_signali (sinais)
    # Dobivamo referencu na XML deskriptor da bismo mogli pristupiti
    self.label = self.widgets_widget ("Oznaka")
    self.cadroTexto = self.widgets_widget ("CadroTexto")

    def button_click (self, widget):
    text = self.cadroTexto.get_text ()
    self.label.set_text ("val% s"% teksta)

    ako je __name__ == »__ main__»:
    FiestraPrincipal ()
    Gtk.Main ()

    Dobivam ovaj odgovor:
    Traceback (najnoviji zadnji poziv):
    Datoteka «C: / Users / admin / Google Drive / test / SaudoForm.py», redak 3, u
    iz gi.repozitorija uvoz Gtk
    Datoteka "C: \ Python33 \ lib \ site-package \ gi \ __ init__.py", redak 27, u
    iz ._gi import _API, Repozitorij
    ImportError: Nije uspjelo učitavanje DLL-a:% 1 nije važeća Win32 aplikacija.

    Netko zna u čemu je problem ili koje je možda njegovo moguće rješenje.
    Puno hvala.

  5.   Isus dijo

    Zanimljiv. Instalaciju sam obavio u Linuxu, ali objašnjenje za Windows je u redu, sada ga imam u oba. 😉

  6.   Rafael Carmona dijo

    Smiješno je na 7-bitnom sustavu Windows 32 prvi put.
    Na 7-bitnom sustavu Windows 64 ne mogu ga pokrenuti, uvijek ga dobijem;
    >>> iz gi.repository import Gtk
    Traceback (najnoviji zadnji poziv):
    Datoteka «», redak 1, u
    Datoteka "C: \ Python33 \ lib \ site-package \ gi \ __ init__.py", redak 27, u
    iz ._gi import _API
    ImportError: Učitavanje DLL-a nije uspjelo: navedeni postupak nije pronađen.

    Isprobao sam to svejedno moguće, već sam izgubio iluziju da sam ga instalirao.

    1.    artus dijo

      Vidjet ćete da 64-bitne knjižnice i dalje imaju neke pogreške, instalirajte 32-bitnu verziju i pythona i GTK + kako ne biste imali problema.

      Nikada ne biste trebali izgubiti iluziju 🙂

  7.   Richard dijo

    Pozdrav, radim s python + gtk3, sada je vrlo dobro, imam mali problem. U ovom slučaju želim promijeniti ikonu u svoj oblik (prozor) i mogu je promijeniti, hvala unaprijed, pozdrav

  8.   jors dijo

    objavite jednostavne video zapise o tome kako programirati u gtk + 3 i jednostavne pozdrave s vodičima

  9.   Jose dijo

    Izvrsna lekcija. Puno vam hvala na trudu. Pozdrav.

  10.   jkmilo1030 dijo

    Učinio sam sve korake i kad sam otišao vjerovati instalaciji, dobio sam ovu pogrešku.

    Traceback (najnoviji zadnji poziv):
    Datoteka «», redak 1, u
    iz gi.repozitorija uvoz Gtk
    ImportError: Nema modula pod nazivom 'gi'