Als je je Python ontwikkelomgeving met conda beheert, raden we aan om eerst het onderstaande artikel te lezen.
- Vooraf lezen:
Introductie tot Conda, Anaconda, Miniconda
Het onderstaande artikel vat deze inhoud kort samen en biedt een praktische gids over het creëren, verwijderen, dupliceren en migreren van conda omgevingen.
1. Anaconda vs Miniconda in één zin samengevat
In het kort kan het als volgt worden bekeken.
-
Anaconda:
→ Een alles-in-één distributie die vaak gebruikte pakketten voor datawetenschap/machine learning in één keer installeert. -
Miniconda:
→ Biedt alleen de functies voor conda omgeving/pakketbeheer en,
de ontwikkelaar kan zelf de benodigde pakketten kiezen en installeren in deze minimale distributie.
Ik geef de voorkeur aan de stijl van “licht beginnen en alleen pakketten toevoegen wanneer dat nodig is”, daarom
raad ik aan om in de meeste gevallen Miniconda te installeren en daarbovenop omgevingen op te bouwen.
-
Beheert minder schijfruimte
-
Minder gedoe bij updates
-
Installeert alleen wat nodig is per project, zodat de omgeving minder rommelig wordt.
2. Voorbeeld van het concept van conda omgevingen
De “omgeving (environment)” van conda is eenvoudig gezegd een set van Python/pakketten die per project zijn gescheiden.
-
env A: Python 3.10 + Django 4 + specifieke bibliotheekversies -
env B: Python 3.11 + FastAPI + totaal andere set bibliotheken
Het belangrijkste is om verschillende versies te isoleren zodat ze elkaar niet beïnvloeden.
De basiscommando's die vaak worden gebruikt met betrekking tot omgevingen zijn als volgt.
# Bekijk de huidige geïnstalleerde conda omgevingen
conda env list
# Of
conda info --envs
3. Een conda omgeving creëren
3.1 De meest basale omgeving creëren
conda create -n myenv python=3.12
-
-n myenv: Geeft de naam van de omgeving op alsmyenv -
python=3.12: Gebruik Python versie 3.12
Nadat de omgeving is gemaakt:
conda activate myenv # Activeer de omgeving
conda deactivate # Deactiveer de omgeving
3.2 Meest gebruikte pakketten samen installeren
conda create -n myenv python=3.12 numpy pandas matplotlib
Er wordt een nieuwe omgeving aangemaakt met de bovengenoemde pakketten die zijn geïnstalleerd via het basis kanaal van de reeds geïnstalleerde Miniconda.
Aansluitend kan je:
conda activate myenv
conda install scikit-learn
# Of
pip install requests
Op elk gewenst moment extra pakketten toevoegen.
4. Een conda omgeving verwijderen
Het is verstandig om omgevingen die je niet meer gebruikt, resoluut te verwijderen.
(de conda omgeving is vaak redelijk ruimte-innemend.)
# myenv omgeving verwijderen
conda env remove -n myenv
Verificatie na verwijdering:
conda env list
Als myenv niet meer op de lijst staat, is dat normaal.
5. Een conda omgeving dupliceren (clone)
Als je een omgeving hebt waarin je van alles hebt uitgeprobeerd en je wilt
“een omgeving met soortgelijke instellingen maar met een andere naam” maken, is dit nuttig.
# Maak een duplicaat omgeving genaamd new-env op basis van existing-env
conda create -n new-env --clone existing-env
-
Aangezien de pakketversies behouden blijven,
-
is dit een veelvoorkomend patroon wanneer je “de oude omgeving wilt behouden en een nieuwe experiment wilt uitvoeren.”
Na duplicatie:
conda activate new-env
om te controleren of het goed werkt.
6. Een conda omgeving migreren (export / import)
Als je je omgeving naar een andere PC of server wilt verplaatsen,
is het meest gebruikelijke om de omgeving naar een bestand te exporteren (import/export) en vervolgens een nieuwe omgeving op basis van dat bestand te maken.
6.1 Omgeving exporteren – Maak een YAML-bestand aan
# Exporteer mijn omgeving naar het env.yml bestand
conda env export -n myenv > env.yml
In dit env.yml bestand staan:
-
De omgeving naam
-
De informatie over gebruikte kanalen
-
Geïnstalleerde pakketten en versies
Dit staat genoteerd.
Als je alleen de minimale lijst op basis van de geschiedenis wilt exporteren
conda env export -n myenv --from-history > env-min.yml
Als je dit doet, zal conda de benodigde afhankelijkheden vanzelf afhandelen wanneer je het in een andere omgeving creatieert.
6.2 Maak een omgeving op een andere plaats (of op dezelfde machine)
Op een andere PC, server, of op een nieuwe locatie op dezelfde machine:
conda env create -f env.yml
Je kunt hiermee een omgeving maken op basis van de naam en pakketversies gedefinieerd in env.yml.
-
Als
env.ymlbevatname: myenv, dan wordt die naam gebruikt. -
Wil je de naam wijzigen, pas dan het
name:gedeelte van hetenv.ymlbestand aan voordat je het uitvoert.
Bijvoorbeeld, als je name: myenv in env.yml wijzigt naar name: myenv-dev, en vervolgens:
conda env create -f env.yml
conda activate myenv-dev
kun je de zelfde configuratie met een andere naam opnieuw krijgen.
7. Veelgebruikte conda patronen samenvatten
Bij het opzetten van een omgeving op basis van Miniconda, zullen we enkele nuttige patronen samenvatten.
-
Een omgeving voor elk project
-
Geeft omgevingen de naam naar de projectnaam, zoals
proj-a-env,proj-b-env. -
Dit maakt het makkelijker om versiebeheer zonder conflicten.
-
-
Beperk de installatie tot het minimum en breid alleen uit bij behoefte
-
Begin met
pythonen een paar basis pakketten. -
Voeg uit terwijl je ontwikkelt met
conda installofpip install
→ Dit sluit goed aan bij de minimalistische filosofie van Miniconda.
-
-
Regelmatig belangrijke omgevingen exporteren
-
Bij een moment van release, voordat je distribueert:
bash conda env export -n proj-a-env --from-history > proj-a-env.yml -
Als je dit bestand opslaat en commit naar je repository,
kan een teamgenoot dezelfde omgeving gemakkelijk reproduceren.
-
-
Maak een back-up met clone voor grote wijzigingen
-
Voor grote pakket-upgrades, of een verandering van de Python-versie:
bash conda create -n proj-a-backup --clone proj-a-env -
Als er iets misgaat, kan je snel terugkeren naar de back-up omgeving.
-

Conclusie: Licht beginnen en uitbreiden indien nodig
Samenvattend zijn de keuzes eenvoudig.
-
Anaconda is de manier om “potentieel benodigde pakketten” in één keer te installeren.
-
Miniconda is de manier om “slechts dat wat echt nodig is op het juiste moment te installeren” en licht te houden.
In situaties zoals tegenwoordig, waar elke project specifieke vereisten voor Python versies en pakketten heeft,
is de combinatie Miniconda + goed beheerde conda omgevingen veel flexibeler.
Omgevingen:
-
maken (
conda create) -
activeren (
conda activate) -
verwijderen (
conda env remove) -
dupliceren (
conda create --clone) -
verplaatsen (
conda env export/conda env create)
Als je dit basisniveau beheerst, zal je veel minder zorgen hebben bij het beginnen van een nieuw project met
“Wat moet ik nu weer verwijderen en wat opnieuw installeren?”
Bij het starten van een nieuw project:
-
Maak een nieuwe omgeving op basis van Miniconda
-
Installeer daarin alleen de echt noodzakelijke pakketten.
-
Als je tevreden bent met de omgeving configuratie, exporteer deze dan naar
env.ymlzodat je deze kunt gebruiken
bij je volgende project door slechts kleine aanpassingen te maken.
Als je deze patronen onder de knie hebt, zal het beheer van conda omgevingen geen rommelige taak meer zijn, maar
een “betrouwbare gewoonte om projecten schoon te houden”.
댓글이 없습니다.