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

ilkant

  • Käyttäjä
  • Viestejä: 790
  • 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ä: 790
  • 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ä: 790
  • 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ä: 710
    • 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ä: 790
  • 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ä: 710
    • 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ä: 790
  • 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ä: 14697
    • 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ä: 790
  • 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ä: 790
  • 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