Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: mpiso - 11.05.19 - klo:11.49
-
Versiossa 18.04 Freecad 0.18.1 käyttää python3 versiota. Aluksi ei edes Elmer ratkaisijan lisäys piirrepuuhun onnistunut. Virheilmoituksen perusteella löysin ratkaisun netistä. Piti lisätä yksi paketti.
sudo apt install python3-distutils
Sen jälkeen laskenta näytti menevän läpi. Virhe (alla) syntyi kun Elmerin piti palauttaa tulos jälkikäsittelyä varten Freecadiin.
Exception in thread Thread-8:
Traceback (most recent call last):
File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/usr/share/freecad/Mod/Fem/femsolver/task.py", line 115, in protector
self.run()
File "/usr/share/freecad/Mod/Fem/femsolver/elmer/tasks.py", line 107, in run
self._updateOutput(output)
File "/usr/share/freecad/Mod/Fem/femsolver/elmer/tasks.py", line 115, in _updateOutput
self.solver.ElmerOutput.Text = output.decode("utf-8")
AttributeError: 'str' object has no attribute 'decode'
Kun siirrän dokumentin ympäristöön (16.04) missä on käytössä myös Freecad 0.18.1 mutta python2, niin uudelleenlaskenta toimii ja palauttaa tuloksen oikein.
Onko tuossa kysymys siitä, että python3 ei ole taaksepäin täysin yhteensopiva, vai puuttuko minulta jokin paketti tai ympäristömuuttuja?
-
Onko tuossa kysymys siitä, että python3 ei ole taaksepäin täysin yhteensopiva
Juu. Käyttämäsi Elmer-moduuli ei nähtävästi ole vielä täysin Python 3 -yhteensopiva.
-
Onko tuossa kysymys siitä, että python3 ei ole taaksepäin täysin yhteensopiva,
Python 3:ssa merkkijonoilla ei enää ole decode()-metodia. bytes-oliolla olisi, mutta ei se nyt oikeastaan sinua auta, ellet lähde käsin puukottamaan valmiita paketteja.
-
Se tahtoo aina olla tätä kun jotain uudistetaan. Täytyy siis vain odottaa päivitystä. CalculiX kuitenkin toimii. Se on myös oletuksena, eikä Elmer.
Edit: ParaView näyttää tulokset oikein Elmerin laskennan lopuksi tekemästä tiedostosta case0001.vtu. ParaView 5.4.1 käyttää kuitenkin Python versiota 2.7. Ainakaan minä en tuosta pysty päättelemään onko vika Elmerin tiedostossa (.vtu) vai onko Freecad komennot vain jääneet päivittämättä.
-
Myös Freecad avaa tiedoston case0001.vtu aivan oikein, ilman mitään virheilmoitusta. Se on kuitenkin oma tiedosto ja piirrepuussa on vain tulos. Kysymys on ilmeisesti siitä, että koodi joka Freecadissa liittää tuloksen osaksi alkuperäistä piirrepuuta, ei ole Python 3 yhteensopiva. Saatan olla väärässä, korjatkaa jos on parempaa tietoa.
Merkitsen tämän ratkaistuksi, vaikka purkkaratkaisu onkin.
-
Jos on jokin ohjelmisto tai laajempi työympäristö, jonka haluaa toimivan, eipä ole todellakaan kiire päivitellä uudempiin käyttisversioihin. Siinä kaivaa vain verta nenästään. En ole välttämättä Ubuntua niin paljoa käyttänyt varsinaiseen hyödylliseen ja tuottavaan, mutta esim. töissä pidin 12.04:n käytössä eläköitymiseeni saakka kesällä 2017 paikkatietojuttujen ja niiden ohjelmistojen takia, mukaan lukien Qgis, Tomcat ja Geoserver. Nyt kotona alla 16.04 ja Gimp/Aftershot Pro 3/Darktable jotka ovat jo vakikäytössä enkä Windowsin puolelle Photariin, tarvitse enää juuri koskea.
-
Näinhän se on, ei kannata päivittää jos toimii. Tietysti jos tuen loppuminen aiheuttaa tietoturvaongelman, niin se on sitten toinen asia. Minä käytin töissä noin 20 vuotta samaa Mathcad 8 ohjelmaa. Windows version vaihtuessa piti aina veikkailla, vieläkö toimii.