Python + GTK3

Ahojte,

vedel by mi niekto poradit, preco sa mi nedari rozbehat Python3 a GTK3? V terminali hlasi:

from gi.repository import Gtk
ImportError: No module named repository

Tu je napr. fragment kodu:
#!/usr/bin/python pripadne #!/usr/bin/python3
from gi.repository import Gtk

win = Gtk.Window()
win.connect(“delete-event”, Gtk.main_quit)
win.show_all()
Gtk.main()

python3-gobject, python3 a gtk3 mam naistalovane.
Pouzivam Fedora 16, 32bit.

Som novacik vo Fedore, niekolko rokov som pouzival Ubuntu. Mozno nieco nemam doinstalovane.
Vopred velmi pekne dakujem za akukolvek dobru radu, ktora pomoze.

Rasto

No píše ti to “No module named repository” při gi.repository. Sice nejsem až tak pythoňák, ale hádám že to bude tím, že ti chybí doinstalovat asi co tak koukám pygobject.

Ono je problem, ze naistalovany je aj python3-gobject, aj pygobject a nic. girepository-1.0 je v /usr/lib. Tusim, ze je to nejaka blbost, zial nemam s tym skusenosti. Doteraz som robil len s pygtk a chcem prejst na gtk3.
Ale vdaka za ochotu pomoct.

Rasto

No a mas nainstalovane i devel verze techto balicku?

Ano, vsetky mam aj devel. Je to mrzute, ale nic rozumne som doteraz nenasiela ani cez google.
R.

No hele, teď to u sebe zkouším a

#!/usr/bin/python3
from gi.repository import Gtk
win = Gtk.Window()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()

mi normálně funguje. Nainstalováno mám

python3.x86_64                        3.2.1-1.fc16
python3-gobject.x86_64                3.0.3-1.fc16
pygobject3.x86_64                     3.0.3-1.fc16

Ahojte,

Postupil som aj ja. Zistil som, ze k problemu dochadza len v pripade, ze skript je ulozeny priamo v /home/user adresari, akonahle ho spustam z napr. z adresara /home/user/devel/nejake_skript.py vsetko funguje. Je to ale aj tak trochu divne, ze nie je moze spustit skripty priamo z domaceho adresara.
Priklad:


[user@localhost ~]$ pwd
/home/user
[rasto@localhost ~]$ python3
Python 3.2.1 (default, Jul 11 2011, 18:55:33) 
[GCC 4.6.1 20110627 (Red Hat 4.6.1-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gi
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "gi.py", line 4, in <module>
    from gi.repository import Gtk
ImportError: No module named repository
>>>

a teraz:


[user@localhost pydevel]$ pwd
/home/user/Documents/pydevel
[user@localhost pydevel]$ python3
Python 3.2.1 (default, Jul 11 2011, 18:55:33) 
[GCC 4.6.1 20110627 (Red Hat 4.6.1-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gi
>>>

a vsetko bezi ako ma, bez akejkolvek chybovej hlasky. Odskusane, nabehne GUI vsetko ako ma na testovacich kodoch. Je vo Fedore nejaka ochrana, ale nieco ine, co sposobuje toto spravanie? Je samozrejme, ze kody nebudem mat priamo v home adresari, ale niekde zanorene, no aj tak ma zaujima kde je problem. Nastastie uz pracovat mozem.
Pekny den,
Rasto

Smaž si z /home/user (předpokládám) testovací soubor gi.py. A do budoucna nepojmenovávej soubory jako moduly :slight_smile:

Python nejprve importuje moduly ze složky ve které je spouštěn, pak ze standardního umístění. Pokud tedy narazil na soubor gi, snažil se to tlačit přes něj…

Ahojte,
problem je vyrieseny. Urobil som skolacku chybu, pri kopirovani suborov a upratovani som zabudol vymazat par *.py suborov a bohuzial jeden sa nazyval gi.py. Co malo ten dosledok, ze ked som spustil skript v to istom adresari, tak sa snazil natiahnut modul z tohto adresara, teda ten gi.py subor a nie modul umiestneny v /usr/lib/python3.2/site-packages. Po odstraneni a upratani neporiadku v adresari, vsetko funguje ako ma.
Pekny den,
Rasto

Ano presne tak, predbehol si ma, ale uz som tusim nejaky podobny problem.
Rasto