Kirjoittaja Aihe: Python 3.10 Kubuntu 21.10:een [Ratkaistu]  (Luettu 2079 kertaa)

ilkant

  • Käyttäjä
  • Viestejä: 1270
  • Kubuntu
    • Profiili
Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« : 13.01.22 - klo:18.49 »
Onko kukaan asentanut Pythonin versiota 3.10 Kubuntu 21.10:een tai 20.xx:ään? Kubuntussa on normaalisti uusimpana Python 3.9.7. Onko tuo 3.10 yhteensopiva järjestelmän kanssa, jotta ei tule ongelmia? Tässä on ohje 3.10:n asentamiseksi Ubuntuun.

Versiossa 3.10 on muutama hyvä uudistus. Jossain oli jopa versio 3.11, mutta sen ominaisuuksiin en ole tutustunut.
« Viimeksi muokattu: 13.01.22 - klo:21.36 kirjoittanut ilkant »

ilkant

  • Käyttäjä
  • Viestejä: 1270
  • Kubuntu
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een
« Vastaus #1 : 13.01.22 - klo:21.09 »
Asensin ohjeiden mukaan Pythonin version 3.10. Mm. komennot: (Huom: Kiinan kieli kummittelee kuten olen aiemmin kertonut)

Koodia: [Valitse]
sudo apt install python3.10
python3 --version
apt-cache rdepends python3.8
apt-cache rdepends python3.9
apt-cache rdepends python3.10
sudo apt-get install python3.10-venv
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2
sudo update-alternatives --config python3

Koodia: [Valitse]
ilpo@MSI:~$
python3 --version
Python 3.10.0
sudo update-alternatives --config python3
替代項目 python3(提供 /usr/bin/python3)有 2 個選擇。

  Valinta      Polku                Prioriteet Tila
------------------------------------------------------------
* 0            /usr/bin/python3.10   2         自動模式
  1            /usr/bin/python3.10   2         手動模式
  2            /usr/bin/python3.9    1         手動模式

Paina <enter> säilyttääksesi nykyisen valinnan

PyCharm-ohjelmassa projektin asetuksissa en voi valita versiota 3.10 interpreteriksi kun se ei näy listalla. Eikä ede, vaikka valitsisi "näytä kaikki". Kun olen lisäännyt tuon venvin 3.10 paketin, niin kysymys on kai jostain ohjelmistojen bugista. Noista tiloista ensimmäinen on suomeksi "automaattinen" ja muut "manuaalinen":
« Viimeksi muokattu: 13.01.22 - klo:21.11 kirjoittanut ilkant »

ilkant

  • Käyttäjä
  • Viestejä: 1270
  • Kubuntu
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een
« Vastaus #2 : 13.01.22 - klo:21.21 »
Taisi onnistuakin kun pystyin lisäämään uuden interpreterin PyCharmin projektissa. Mutta tuon uuden interpreterin jälkeen projektiin installoidut paketit kutn openpyxl ei enää näkynyt ja ohjelma antoi virheilmoituksen puuttuvasta paketista. Asensin sen uudelleen.

Sen asennuksen yhteydessä huomasin pyxl3-paketin. Voiko sitä käyttää Excel-taulukkojen kanssa ja onko siinä lisäominaisuuksia tai tehokkuutta verrattuna openpyxl:ään?

Ohjelmakoodissa tuli virhelimoitus:
Koodia: [Valitse]
raise ImportError('You must install Pillow to fetch image objects')

Python 3.9 -versiolla se antoi vain varoituksen koodista
Koodia: [Valitse]
img = openpyxl.drawing.image.Image('kuva.jpg')

Ja nyt tällä 3.10:llä se ei enää toimikaan. No, sitten vain asentaa Pillowin.
« Viimeksi muokattu: 13.01.22 - klo:21.27 kirjoittanut ilkant »

juyli

  • Käyttäjä / moderaattori
  • Viestejä: 1198
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« Vastaus #3 : 13.01.22 - klo:22.27 »
Onko kukaan asentanut Pythonin versiota 3.10 Kubuntu 21.10:een tai 20.xx:ään? Kubuntussa on normaalisti uusimpana Python 3.9.7.
Ubuntu 20.04:n versio on Python 3.9.
 https://packages.ubuntu.com/search?keywords=python3.9&searchon=names&suite=focal&section=all
Ubuntu 20.10:n tuki on jo mennyt.
Version Ubuntu 21.04:
https://packages.ubuntu.com/search?keywords=python3.10&searchon=names&suite=hirsute&section=all
Version Ubuntu 21.10:
https://packages.ubuntu.com/search?keywords=python3.10&searchon=names&suite=impish&section=all

Ole varovainen noiden mainioiden PPA-repojen kanssa, jos et tarkasti tiedä, mitä olet tekemässä.
Tuo kieliongelma toki viittaa epäsopivuuteen järjestelmäsi kanssa, jos et käytä ko. kieliasetuksia.
Ubuntu 22.04:n virallinen/tuettu versio (toistaiseksi):
https://packages.ubuntu.com/search?keywords=python3.10&searchon=names&suite=jammy&section=all


ilkant

  • Käyttäjä
  • Viestejä: 1270
  • Kubuntu
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« Vastaus #4 : 14.01.22 - klo:00.11 »
Ole varovainen noiden mainioiden PPA-repojen kanssa, jos et tarkasti tiedä, mitä olet tekemässä.
Tuo kieliongelma toki viittaa epäsopivuuteen järjestelmäsi kanssa, jos et käytä ko. kieliasetuksia.
Ubuntu 22.04:n virallinen/tuettu versio (toistaiseksi):
https://packages.ubuntu.com/search?keywords=python3.10&searchon=names&suite=jammy&section=all

Maltoin mieltäni kyllä, mutta tekemäni if-else häkkyrä oli niin monimutkainen, että koodaus pysähtyi siihen kun se toimi ihan eri tavalla kuin oli tarkoitus. Sitten päätin kokeilla tuota uudempaa Pythonin versiota. Aluksi ajattelin kokeilla niin, että en aseta sitä järjestelmän oletusversioksi. Nyt näyttää kaikki toimivan hyvin (kun asennan Pillowin vielä).

Se kielijuttu ei johdu tuosta Pythonista, vaan ihan muusta. Siitä on keskusteluketju aiemmin tässä ryhmässä. Johtunee siitä, että Kubuntun suomen kielen kielipaketissa on joku fraasi muuttunut fuzzyksi. Tai sitten kuten itse ajattelin alunperin, bugi Kubuntun kielipakettien käsittelyssä (todennäköisesti indeksointi, tai pointteribugi).

Onko tuo Kubuntun versio 22.04 jo sellainen, että se on stabiili ja ei kaatuile? Asensin tuon Python 3.10 nyt kun en malta odottaa huhtikuuhun 2022 asti. Ohjelmointiprojekti olisi valmistumassa ihan muutamassa päivässä.
« Viimeksi muokattu: 14.01.22 - klo:00.13 kirjoittanut ilkant »

juyli

  • Käyttäjä / moderaattori
  • Viestejä: 1198
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« Vastaus #5 : 14.01.22 - klo:00.24 »
Onko tuo Kubuntun versio 22.04 jo sellainen, että se on stabiili ja ei kaatuile? Asensin tuon Python 3.10 nyt kun en malta odottaa huhtikuuhun 2022 asti.
Koskapa Ubuntu virallisesti tarjotaan vasta kuukausien päästä, ei sitä kannata vielä asentaa.
Toki tuo lienee jo varsin toimiva (tuskin sentään kaatuilee), mutta ei ole vielä vakaa, ja tiettyjä ongelmia voi olla odotettavissa, kun jakeluun päivitetään jatkuvasti uusia osia ja ohjelmaversioita.
Mikään ei tietenkään estä kokeilemasta.

ilkant

  • Käyttäjä
  • Viestejä: 1270
  • Kubuntu
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« Vastaus #6 : 14.01.22 - klo:11.51 »
Sain sen Python 3.10:n toimimaan. Switch-case antoi syntaksivirheitä. Match-case ei antanut virheilmoitusta, mutta ei tehnyt mitään. Totean Python 3.10 uusien ominaisuuksien toimivan vaillinnaisesti. Ja sitten tuli jotain pythonin kirjastoihin toimimattomia linkityksiä, josta seurasi apt update:n antama virheilmoitus puuttuvasta komponentista. Siis se update ei toiminut. Sain ne korjattua. Nyt on vaan olo, että tekisi huhtikuussa 2022 mielellään Kubuntu 22.04:n puhtaana asennuksena vailla epämääräisiä sotkuja.

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« Vastaus #7 : 14.01.22 - klo:13.22 »
Sain sen Python 3.10:n toimimaan. Switch-case antoi syntaksivirheitä. Match-case ei antanut virheilmoitusta, mutta ei tehnyt mitään. Totean Python 3.10 uusien ominaisuuksien toimivan vaillinnaisesti.

Kyllähän ne Pythonin ominaisuudet toimivat varmasti kuten on tarkoitettu. Jos näin laajasti käytetyssä ohjelmointikielessä kohtaa syntaksivirheitä tai muita ydintoiminnallisuuden ongelmia, on aina syytä olettaa, että vika on ensisijaisesti omassa koodissa.

Se kielijuttu ei johdu tuosta Pythonista, vaan ihan muusta. Siitä on keskusteluketju aiemmin tässä ryhmässä. Johtunee siitä, että Kubuntun suomen kielen kielipaketissa on joku fraasi muuttunut fuzzyksi. Tai sitten kuten itse ajattelin alunperin, bugi Kubuntun kielipakettien käsittelyssä (todennäköisesti indeksointi, tai pointteribugi).

Myös tässä ongelmassa järjestelmä toimii kuten on suunniteltu, ja epätoivottu lopputulos johtuu konfiguraatiostasi. Jos haluat nähdä vain suomenkielisiä (ja englanninkielisiä) käännöksiä, aseta järjestelmän kieleksi pelkkä suomi. Nyt siellä on suomi ja kiina.

Sovellusten kieli määritellään LANGUAGE-ympäristömuuttujan avulla, ja sen voi määritellä graafisen käyttöliittymän kieliasetuksen kautta.

ilkant

  • Käyttäjä
  • Viestejä: 1270
  • Kubuntu
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« Vastaus #8 : 15.01.22 - klo:20.59 »
Kyllähän ne Pythonin ominaisuudet toimivat varmasti kuten on tarkoitettu. Jos näin laajasti käytetyssä ohjelmointikielessä kohtaa syntaksivirheitä tai muita ydintoiminnallisuuden ongelmia, on aina syytä olettaa, että vika on ensisijaisesti omassa koodissa.

Tuo, että vika löytyy monitorin ja tuolin selkänojan välistä, on tullut todettua monesti. Koneet ja ohjelmat toimivat yleensä hyvin. Pitää tutkia tarkemmin asiaa kun tulee aikaa. Toistaiseksi kommentoin 3.10 uudet lauseet ja tein koodista vanhemmalle pythonin versiolle sopivan. Toimii sillä ainakin oikein.

ilkant

  • Käyttäjä
  • Viestejä: 1270
  • Kubuntu
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« Vastaus #9 : 16.01.22 - klo:13.52 »
Laitan tähän pätkän koodia, jossa match case ei tehnyt mitään eikä antanut virheilmoitusta. Switch case antoi syntax errorin. Tarkastele vain if-else tai switch-case kohtia. Toki muutakin voi kommentoida.

if-else rakenteella:
Koodia: [Valitse]
found = False
while not found:
    if il[0] < len(lista):
        if day.weekday() == 2:
            if lista[il[0]][5] != 'x':
                found = True
                nimi = lista[il[0]][0]
                il[0] += 1    # python trick use list as reference parameter
        if day.weekday() == 5 or day.weekday() == 6:
            if lista[il[0]][6] != 'x':
                found = True
                nimi = lista[il[0]][0]
                il[0] += 1
        if day.weekday() == 0 or day.weekday() == 1 or day.weekday() == 3 or day.weekday() == 4:
            found = True
            nimi = lista[il[0]][0]
            il[0] += 1
        if found == True:
            return nimi[0:17]
        il[0] += 1
    else:
        il[0] = 0

match case:lla Deadsnakes PPA python 3.10:lla
Koodia: [Valitse]
found = False
while not found:
    match day.weekday():
        case 2:
            found = True
            nimi = lista[il[0]][0]
            il[0] += 1    # python trick use list as reference parameter
        case (5 | 6):
            found = True
            nimi = lista[il[0]][0]
            il[0] += 1
        case (0 | 1 | 3 | 4):
            found = True
            nimi = lista[il[0]][0]
            il[0] += 1
        if found == True:
            return nimi[0:17]
        il[0] += 1
    else:
        il[0] = 0

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« Vastaus #10 : 18.01.22 - klo:15.40 »
Laitan tähän pätkän koodia, jossa match case ei tehnyt mitään eikä antanut virheilmoitusta. Switch case antoi syntax errorin.

Niin, koodissa on syntaksivirhe, ja Python kertoo ihan oikein, että virhe sijaitsee rivillä "if found == true" (ja siitä eteenpäin):

Koodia: [Valitse]
$ python3.10 match.py
  File "match.py", line 16
    if found == True:
    ^^
SyntaxError: invalid syntax

Tämä osa ei siis kuulu match-lausekkeeseen, vaan koodissa on sisennys- ja logiikkavirhe:
Koodia: [Valitse]
        if found == True:
            return nimi[0:17]
        il[0] += 1
    else:
        il[0] = 0


Toki muutakin voi kommentoida.

Koodista ei oikein selviä, mitä sen olisi tarkoitus tehdä, mutta ainakin il[0] -listamuuttujan sijaan kannattaisi käyttää tavallista kokonaislukumuuttujaa.
« Viimeksi muokattu: 18.01.22 - klo:15.44 kirjoittanut nm »

ilkant

  • Käyttäjä
  • Viestejä: 1270
  • Kubuntu
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« Vastaus #11 : 18.01.22 - klo:15.41 »
Kokeilin GTK:ta. En saanut esimerkkiohjelmia toimimaan ennen kuin asetin konfiguroinnilla Pythonin version 3.10:stä 3.9:ään. Siis tuo Deadsnakes Python 3.10 ei sisällä kaikkia osia pythonista. Ja tuolla 3.9:lläkin toimi vain toinen esimerkkiohjelma.

Huomasin sivulta, että sukututkimusohejlma Gramps käyttää Gtk:ta, itse asiassa Gtk2:sta. Pip ei löytänyt pakettia Gtk2. Ehkä tuolla pelkällä Gtk:llakin voi tehdä ihan kelpoja graafisia ohjelmia pythonilla Kubuntuun. Sitten on Qt4, mutta sen paketit olivat vähän monimutkaisemman näköisiä käyttää.
« Viimeksi muokattu: 18.01.22 - klo:15.47 kirjoittanut ilkant »

ilkant

  • Käyttäjä
  • Viestejä: 1270
  • Kubuntu
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« Vastaus #12 : 18.01.22 - klo:15.56 »
Koodista ei oikein selviä, mitä sen olisi tarkoitus tehdä, mutta ainakin il[0] -listamuuttujan sijaan kannattaisi käyttää tavallista kokonaislukumuuttujaa.

Se etsii listalta nimiä. Nimillä on sitten attribuutteja. Osa nimistä ei käy keskiviikkona ja osa viikonloppuisin. Kontekstista irroitettu koodinpätkä ei ole helppo ymmärtää. Nuo sisennysvirheet voivat olla siinä vaiheessa tulleita, kun kopioin tekstiä IDE:stä foorumille. Tarkistan koodin. Lisäksi huomasin, että tuossa koodissa jokainen case-kohta tekee saman toiminnon, jolloin koko case olisi turha. Mutta alkuperäisessä koodissa oli niiden atribuuttien tarkastelua myös. Kiitos kommenteista. Jossain vaiheessa kokeilen vielä sitä match-casea uudelleen.

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« Vastaus #13 : 18.01.22 - klo:16.03 »
Kokeilin GTK:ta. En saanut esimerkkiohjelmia toimimaan ennen kuin asetin konfiguroinnilla Pythonin version 3.10:stä 3.9:ään. Siis tuo Deadsnakes Python 3.10 ei sisällä kaikkia osia pythonista. Ja tuolla 3.9:lläkin toimi vain toinen esimerkkiohjelma.

Deadsnakes tarjoaa Pythonin peruspaketit. Kaikki muu pitää asentaa itse pipillä tai tapauskohtaisesti muilla menetelmillä.

Huomasin sivulta, että sukututkimusohejlma Gramps käyttää Gtk:ta, itse asiassa Gtk2:sta.

Gramps käyttää nykyisin kyllä GTK3-kirjastoja:

https://www.gramps-project.org/wiki/index.php/Download
Lainaus
Uses GTK+ 3 GUI


Pip ei löytänyt pakettia Gtk2.

Python-pakettia Gtk2 ei ole olemassa, eikä ole koskaan ollutkaan. GTK 3:n Python-sidokset voi asentaa tämän ohjeen mukaisesti: https://python-gtk-3-tutorial.readthedocs.io/en/latest/install.html

Gramps ja vastaavat sovellukset riippuvat kuitenkin niin suuresta määrästä kirjastoja ja muita paketteja, ettei ole mitään järkeä lähteä asentamaan niitä manuaalisesti, ellet halua itse kehittää sovellusta. Pidä siis suosiolla järjestelmän Python-versiona jakelun tarjoama 3.9. Omissa projekteissasi voit sitten käyttää muita Python-versioita vapaasti.

ilkant

  • Käyttäjä
  • Viestejä: 1270
  • Kubuntu
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« Vastaus #14 : 18.01.22 - klo:16.11 »
Tarkistin sivulta Grampsin asennus, niin se paketti olikin pygtk2.

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« Vastaus #15 : 18.01.22 - klo:19.26 »
Tarkistin sivulta Grampsin asennus, niin se paketti olikin pygtk2.

Tuo teksti taitaa olla peräisin jostain kymmenen vuoden takaa. Versionumeroa vain on päivitetty sisällöstä riippumatta.

Nykyinen Gramps ei edes toimi Python 2.x:llä ja GTK+ 2:lla. Tässä hieman tuoreempi listaus riippuvuuksista: https://www.gramps-project.org/wiki/index.php/Linux:Build_from_source

ilkant

  • Käyttäjä
  • Viestejä: 1270
  • Kubuntu
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« Vastaus #16 : 08.02.22 - klo:20.48 »
Tässä on python 3.11 käännettävänä. Mitä sanotte tästä kun jos sen kääntää omalla koneella? Eikö sen pitäisi silloin toimia siinä koneessa? Periaatteessa.

Pyhton (3.11)

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« Vastaus #17 : 08.02.22 - klo:20.50 »
Juu, pitäisi toimia sillä koneella jolla käännät, paitsi jos ristiinkäännät jotain toista arkkitehtuuria ja järjestelmää varten. Se on kuitenkin yleensä huomattavasti mutkikkaampaa.

Mielestäni kuitenkin turha vaiva kääntää itse, ellei tarkoituksena ole kehittää ja muokata Python-tulkkia.
« Viimeksi muokattu: 08.02.22 - klo:20.52 kirjoittanut nm »

ilkant

  • Käyttäjä
  • Viestejä: 1270
  • Kubuntu
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« Vastaus #18 : 08.02.22 - klo:20.55 »
Juu, pitäisi toimia sillä koneella jolla käännät, paitsi jos ristiinkäännät jotain toista arkkitehtuuria ja järjestelmää varten. Se on kuitenkin yleensä huomattavasti mutkikkaampaa.

Mielestäni kuitenkin turha vaiva kääntää itse, ellei tarkoituksena ole kehittää ja muokata Python-tulkkia.

Mutta omalla koneella käännettynä siinä olisi kaikki Pythonin (sen version) toiminnot ja ne toimisivat sillä koneella kuin se on käännetty? Esimerkiksi aiemmin kertomani match case toimisi kuten Pythonin speksit sanovat. Olen muokannut koodia tuon jälkeen, enkä voi enää palauttaa sitä tilannetta.

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Python 3.10 Kubuntu 21.10:een [Ratkaistu]
« Vastaus #19 : 09.02.22 - klo:00.33 »
Mutta omalla koneella käännettynä siinä olisi kaikki Pythonin (sen version) toiminnot ja ne toimisivat sillä koneella kuin se on käännetty? Esimerkiksi aiemmin kertomani match case toimisi kuten Pythonin speksit sanovat. Olen muokannut koodia tuon jälkeen, enkä voi enää palauttaa sitä tilannetta.

Joo, pitäisi toimia, mutta toimivat ne valmiilla binääreilläkin.