- Liittynyt
- 21.01.2017
- Viestejä
- 293
A. En tiedä. En halua tietää condasta yhtään enempää kuin on pakko.Miten tuo asentaa uudemman Pythonin? Sehän pitää kääntää, joten asentaako se johonkin sandboxiin kaikki tarvittavat työkalut? Vai tuleeko tuolta kaikki mahdolliset Python-versiot valmiiksi käännettynä? Entä wheelit?
Debianissa muuten Python-paketit pitää käytännössä asentaa virtuaaliympäristöön muutenkin.
B. "Paketinhallinta". Debianissa on paketinhallintatyökalu (apt?) joka osaa ladata verkon "repository:stä" paketti-tiedostoja ja avata niistä ohjelmien tiedostot "oikeaan paikkaan" (eli "asentaa"). Repossa ei kuitenkaan (yleensä) ole "kaikkia ohjemia" (esim. Pythonin moduleita), eikä "oikean paikan" sekaan sovi tiputtaa ties mitä ettei paketinhallinta tipu kartalta.
Virtuaaliympäristö (venv) on mielivaltainen paikka "muualla", jonne "PyPI-reposta" saa asennettua Python moduuleja. Se 'pip' on paketinhallintatyökalu, joka osaa ladata PyPI:stä ja ymmärtää "Python-paketteja" (jotka ovat eri muodossa kuin esim. .deb-paketit), muttei tiedä mitään distron paketinhallinnasta.
Venv:iä luodessa luova Python-binääri (joka on jostain aiemmin asennettu) lisää symlinkit itseensä, jotta ympäristössä "python" käyttää juuri sitä versiota.
Conda on myöskin paketinhallintatyökalu. Käyttisriippumaton, eli ei tiedä distron paketeista. Sillä on kai omat reponsa. Se asentaa sekä Pythonin että moduuleita ja kaiken virtuaaliympäristöihin. Eli: luo venv (ilman Pythonia), hae ja asenna sinne Python (tarvittaessa), hae ja asenna moduuleja (kuin pip). Käännetäänkö joitain binäärejä, vai onko condalla repossa joka paikkaan sopivia? En tiedä. Sen tiedän, että jokainen conda-ympäristö -- pienikin -- sisältää ziljoona tiedostoa, eli conda lataa/asentaa tuhottomasti "paketteja". Kyllä siihen määrään build-työkalutkin hukkuvat.
Jälkimmäisen seurauksena esim. CSC:n HPC-ympäristöön ei saa suoraan asentaa condalla mitään, vaan jokainen conda-asennus pitää tunkea (Apptainer) konttiin. Ympäristön Lustre-tiedostojärjestelmä ei tykkää järjettömästä määrästä pieniä tiedostoja (varsinkin jos jokainen käyttäjä asentaa jotain condalla).
