Lehet, hogy én csinálok valamit nagyon félre, de jó ideje szenvedek a 24.04-es kiadással. Ami minden egyes telepítésnél előjön, az alábbi python hibák, és emiatt sok funkció és/vagy alkalmazás (ami pythonra épül) nem használható:
SyntaxWarning: invalid escape sequence '\w'
SyntaxWarning: invalid escape sequence '\*'
SyntaxWarning: invalid escape sequence '\s'
SyntaxWarning: invalid escape sequence '\('
Hasonló hibákra példa ITT és ITT
Sajnos a 24.04 hemzseg ezektől.
Tapasztalta más is ezeket a hibákat? Sajnos sehol nem találtam erre javításokat.
- 517 megtekintés
Hozzászólások
Elvileg vannak kint már frissítések erre.
libpython3-stdlib/noble-updates 3.12.3-0ubuntu2 amd64
python-apt-common/noble-updates 2.7.7ubuntu3 all
python3-apt/noble-updates 2.7.7ubuntu3 amd64
python3-minimal/noble-updates 3.12.3-0ubuntu2 amd64
python3/noble-updates 3.12.3-0ubuntu2 amd64
- A hozzászóláshoz be kell jelentkezni
Jelenleg minden a legfrissebb. A probléma nem szünt meg.
- A hozzászóláshoz be kell jelentkezni
Ott van a hibajelentésekben, hogy az okozza a gondot, hogy az érintett appok nem kompatibilisek a Python 3.12 változásaival. Nem Ubuntu specifikus, hanem Python specifikus a probléma. Azért jön elő 24.04-en, mert az a Píthon 3.12-t szállítja már alapból.
A megoldás, ha a készítők javítják a kódjukban az érintett részeket. A leírás szerint mindössze egy "r" kell az expression string elé (raw, pl. r'\d' a sima '\d' helyett), hogy ne kelljen dupla " jel a \ köré. A változtatás visszafelé kompatibilis, a régebbi Python verzióknak állítóleg nem okoz gondot, hogy ha az expression string raw.
- A hozzászóláshoz be kell jelentkezni
Köszönöm. Nekem is ez jött le, de nem voltam biztos a válaszban. A megdöbbentő az, hogy alap alkalmazásoknál vagy komponenseknél is mutatkozik, mivel friss telepítéskor is ebbe futok bele. Egy rakás XFCE4 komponens nem indul, power manager sem kezeli le a gépet rendesen (suspend és wakeup gondok). Mindezen problémás részek a pythonra épülnek.
Két dolgot nem értek: egyrészt a Python fejlesztői miért csinálnak ilyen kanyarokat, hogy ilyen gyökeres szintaktikai véltoztatásokat eszközölnek. A másik az, hogy a linuxos fejlesztők miért egy ilyen kiszímáthatatlan nyelvezetben írják meg az alkalmazásokat.
- A hozzászóláshoz be kell jelentkezni
Nem teljesen pontos a dolog, nem ok csinaltak kanyarokat.
Ugye egy stringbe - C ota, talan meg regebben - be lehet illeszteni speci karaktereket. Ilyen a \n, \t (ujsor, tab), stb. Ha \ kellene bele, annak \\ a jele, ezzel lehet escape-elni.
Regexpben sok \ kezdetu dolog van, mert ott ennek mas specialis jelentese van, pl. \d a decimalis.
Ha mondjuk szamokra akarsz illeszteni valamit, akkor \d+ fogja elfogadni. Ahhoz, hogy ezt stringbe tedd, "\\d+"-t kellett irnod, mert - a C-hez hasonloan - az elso\ escape-eli a masodikat.
Ez nagyobb regexpeknel nagyon kenyelmetlen, ezert kitalaltak a raw stringet: ebbe nem lehet ujsort, tabot, es hasonlot tenni, de nem is kell semmit escape-elni - regexpre nagyon kenyelmes tud lenni (amugy nem ez az egyetlen ilyen, pl. ott az f-string, amibe formazhato valtozokat lehet szurni).
Persze ha egy sima stringbe olyan szekvenciakat teszel, ami invalid, valamit fog kezdeni vele. Sok ertelme nincs annak, hogy direkt ilyet tegyel - hibat viszont okozhat. Eddig ugy kezeltek le a hibat, hogy ugy vettek, mint ha nem akaral specialis jelentest, szoval a \\d helyett a \d is jo volt neki. Viszont ha a \d (vagy amit irtal) pont rendelkezik ilyennel, akkor a regexped fordul fel, szoval ez nem jo. Most meg szol, hogy a hibas szekvencia az bizony hibas szekvencia.
A strange game. The only winning move is not to play. How about a nice game of chess?
- A hozzászóláshoz be kell jelentkezni
Mivel már honapok óta szenvedek az Ubuntu hülyeségeivel, ismét visszakanyarodtam a Debianhoz: az egyik gépemen párhuzamosan az fut, ugyanazon céllal és ugyanazon szoftverekkel. A Debiannal semmi gond.
Egy esélyt még akartam hagyni az Ubuntunak, de most már végleg dobom a kukába. évről-évre szarabb az egész. A Debian viszont tartja a szinvonalat és az erős stabilitást.
- A hozzászóláshoz be kell jelentkezni
Ha jól értem az előzményeket, akkor azért dobod az ubuntut, mert azon egy újabb python verzió van, ahol a python fejlesztők alverzióban eltörték a kompatibilitást? :D
A debian pedig azért tartja magát, mert abban még a régebbi verziók vannak?
Abban persze van logika, hogy mire a debian elér ezekhez a verziókhoz, addigra talán az eljterjedtebb cuccokat átkalapálnak olyanra, hogy fussanak új verzióval is.
- A hozzászóláshoz be kell jelentkezni
nem emiatt. A fő okok nincsenek összefüggésben a Pythonnal.
- A hozzászóláshoz be kell jelentkezni
Mondjuk az ubuntus maintainereknek ezt illett volna kezelni. Ubuntu csomagok törnek egy másik ubuntu csomag miatt, ha jól értem. Ez így milyen? Vagy nem bántják a pythont, vagy javítják és jelentik a fejlesztőknek az emiatt eltörött csomagokat. Ez így nagyon amatőr.
- A hozzászóláshoz be kell jelentkezni
Debian SID-ben a Python verzió 3.12.5. Nem találkoztam benne csomagfrissítésnél ilyen jellegű Python hibákkal.
- A hozzászóláshoz be kell jelentkezni
Voltak, csak már kikalapálták őket. Szerintem 90%-ban botokkal is javítható a dolog, saját python kódjaimban eléggé triviális volt a fix.
Az is lehet, hogy ubuntu development ágon is jók már a csomagok.
- A hozzászóláshoz be kell jelentkezni
Én inkább azt mondanám, hogy az open source szoftverkészlet, amit az Ubuntu is hoz magával, nem akarja tartani a lépést az Ubuntuval. Miközben a két éves LTS verziók azért nem olyan sűrűn jönnek, és jó előre tuni, mi lesz benne, tehát van idő felkészülni a változásokra. A Python 3.12 nem a kiadás előtt került bele hirtelen. Ráadásul ez a verzió már 2023. 10. hóban megjelent, azóta mostanra pláne lett volna idő azokat az "r" betűket beírni a forrásokba...
A Debian még szép, hogy jó, mert abban Python 3.11 van, ami a (fent kifejtett) hibás szintaktikát is megeszi. A Debian 13-ba van a Python 3.12 előirányozva, de mérget vennék rá, hogy amikor a Debian 13 majd valamikor megjelenik, még mindig lesz olyan gyakran használt Python kód/szoftver, ami ezt a hibát dobálja, mert nincs javítva.
Olyan ez, mint a Java. A Java-t mindenki mindig szidta/szidja, hogy "kiszámíthatatlanul változik", deprecated meg obsolote lesz benne ez-az, és sok gondot csinál. Közben meg 1-1.5 évvel a változás előtt ki van adva, mi fog változni, csak a fejlesztők nem törődenek vele, így elavultak a Java-s programok a Java-hoz képest. Erről nem a nyelv tehet. Ahogyan a Python esetében sem.
Én pl. azért nem tudom frissíteni a desktop-omon a Mint 21.3-at 22-re, mert néhány külső forrásból is van rajta ismert, széles körben használt szoftver, de azoknak még nincs Ubuntu 24.04-es csomagja/tárolója a mai napig. Meg itt is van olyan, hogy ami pl. libssl függő, abból kellene új, mert libssl 1.1 helyett libssl 3 van, aminek sok szoftver nem ment még utána (ez frissen telepített Debian 12-nél is gond, ami régebbi dolog a 24-es Ubuntunál...), libssl 1.1 hiányában meg nem települ.
- A hozzászóláshoz be kell jelentkezni