python-gtk2 varazslat

Sziasztok!

Van par regebbi programocska/csomagocska ami idovel kikerult a debian repobol mert nagyon python2-ben irtak meg. Marmint igen, megirtak anno python-ban, tok jol mukodott, koszonik szepen, volt par fuggosege, de megy, ment. A kerdes az hogy van-e valami "sztenderd" modja hogy egy ujabb vagy relative ujabb (pl debian/bullseye) ala visszavarazsoljuk a python-gtk2 (meg ehhez hasonlo, toolkit jellegu) csomagokat? Ezekben a relative ujabb linuxokban a python2 meg ott van, de mar a bindingok kevesse... 

thx, A.

Hozzászólások

Szerkesztve: 2023. 11. 03., p – 19:19
pip install PyGTK

nem működik?

Nem kell Debian csomag belőle, ha nem rootként adod ki a pip parancsot akkor csak a saját felhasználód alá telepíti.

Minden hulla a Mount Everesten valamikor egy nagyon motivált ember volt.

Koszi! Igen, a pip2 latszolag jol felment de a pygtk igy elhasal:

    ********************************************************************
    * Building PyGTK using distutils is only supported on windows.     *
    * To build PyGTK in a supported way, read the INSTALL file.        *
    ********************************************************************

Lerantja a pygtk-2.24.0.tar.bz2-t, de ezutan par obskurus python-tojas utan mar ilyeneket mond :/ 

Meg probaltam itten olyat is hogy csak a pygobject-et teszem fel imigy, mert a forrasbol forditott pygtk-nak a csak az a fuggosege. Az meg mas miatt hasal el, konkretan ez a (relevansnak latszo) uzenet:

  AttributeError: 'module' object has no attribute '__legacy__'

Egyebkent par masik pygtk-fuggoseg (pl pycairo) szepen felment, azokkal nincs gond. Szoval most csak ez a xgsch2pcb => pygtk => pygobject  tunik szuk keresztmetszetnek.

Nem tudod portolni? Van par elteres a 2 es 3 kozott, de annyira nem veszes. Megszunt az int es long kulonbseg, binaris adat kulon tipust kapott az str-es hack helyett, meg a print mostantol normalis fuggvenykent viselkedik - nagyon helyesen.

Egy robotvezerlot portoltam, amit korabbi kollegak dobtak ossze, kisebb javitgatasokkal par nap volt. Meg az is lehet, hogy valamelyik AI rendszer megirja helyetted a lenyegi reszet.

A strange game. The only winning move is not to play. How about a nice game of chess?

Hat, kb 2-3kLOC ez a cucc, es nem en irtam... Szoval biztos lehetne portolni, de olyan nyelveket valojaban en sem szeretek annyira ahol passiobol atdefinialjak az alapmuveleteket is.

Meg ugye eleve a gtk(2) sem annyira van mar mostanaban, a gtk3 meg jo kerdes mennyire backward compatible. Foleg egy ilyen "programnyelv" eseten mint a python...

es biztos hogy nem portolta meg senki? githubon erdemes rakeresni, lehet van olyan forkja...

amugy 2to3 tool megcsinalja a portolas egy reszet (print, xrange stb), de a stringkezeles atvarilasa (str/unicode helyett bytearray/str) az komoly melo tud lenni, persze nem minden programban van ilyesmi. eleinte nagyon utaltam oket emiatt de aztan megertettem es azota nem is akarok mar py2-t hasznalni, annyira gaz volt ott ez az egesz... py3 sokkal szigorubb de cserebe kiszamithatoan mukodik.

Koszi, igen, vegul ez ugy nez ki hogy jo lesz. Vagyis par egyeb trukk + a buster-es csomagok letoltese mar felvarazsolt egy olyan python-gtk2-t ami mellett a xgsch2pcb-t sikerult felherketeni. A "par egyeb trukk" meg az volt hogy kellett meg a `python-is-python2` nevu valami, illetve az osszes python2-dev es libpython2-dev is. Marmint ezutobbiak mar a bullseye-bol. Szoval ez/ezek nem volt fuggosegei a kezzel letoltott buster-es csomagoknak, ellenben enelkul a build folyamat itt-ott-amott de elhasalt.

És archiváld a csomagokat, mert a Buster repository sem fog örökké tartani.

Igen, nekem van meg az osidokbol igy felreteve meg libgtk1.2-esem is :] Sanos az `xmms`-nel jobb zenelejatszot nem lattam, az audacious meg az xmms2 az inkabb vicc mint zenelejatszo.  

Úgy sejtem, a gtk2 lesz a nagy szívás, nem a python2.

Koszi! Kozben en is nezegettem ezt a python3-ra valo portolast es ugyanigy itt kiakad:

Traceback (most recent call last):
  File "/home/apal/bin/xgsch2pcb", line 43, in <module>
    from gui import *
  File "/home/apal/usr/lib/geda-xgsch2pcb/gui.py", line 36, in <module>
    from new_project_gui import NewProjectAssistant
  File "/home/apal/usr/lib/geda-xgsch2pcb/new_project_gui.py", line 32, in <module>
    from assistant import *
  File "/home/apal/usr/lib/geda-xgsch2pcb/assistant.py", line 45, in <module>
    class Assistant(gtk.Window):
                    ^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 69, in __getattr__
    raise AttributeError(_static_binding_error)
AttributeError: When using gi.repository you must not import static modules like "gobject". Please change all occurrences of "import gobject" to "from gi.repository import GObject". See: https://bugzilla.gnome.org/show_bug.cgi?id=709183

(python3.11, bookworm)

Igen, azon kiakad(t):

make: *** No rule to make target 'lib/xgsch2pcb/assistant.py', needed by 'all'.  Stop.

de ha kiszedem a makefile-bol akkor a build meg install folyamatok jol lemennek. A gond utana van, mikor elinditanam es hasznalnam, akkor adja a fenti uzenetet. 

szerk: igen, itt meg mindig benne van a hivatkozas az assistant.py-re: https://github.com/soyersoyer/xgsch2pcb/blob/master/Makefile.am

szerk2: igen, a python3.9 => python3.11 alatt torik el valami... ezelobbin (bullseye) teljesen jol elindul, ezutobbin (bookworm) nem.  szerk3: en voltam a helikopter, ugy nez ki ott is jo mar ez! 

Szerkesztve: 2023. 11. 09., cs – 12:14

-