Jeg har Anaconda installert på datamaskinen min, og jeg vil gjerne oppdatere den. I Navigator kan jeg se at det er flere individuelle pakker som kan oppdateres, men også en anaconda
-pakke som noen ganger har et versjonsnummer og noen ganger sier custom
. Hvordan går jeg frem?
]1
I de fleste tilfeller er det du vil gjøre når du sier at du vil oppdatere Anaconda, å utføre kommandoen:
conda update --all
(Men dette bør foregås av conda update -n root conda
slik at du har den nyeste conda
-versjonen installert)
Dette vil oppdatere alle pakker i det nåværende miljøet til den nyeste versjonen -- med den lille skriften er at den kan bruke en eldre versjon av noen pakker for å tilfredsstille avhengighetsbegrensninger (ofte vil dette ikke være nødvendig, og når det er nødvendig, vil pakkeplanløseren gjøre sitt beste for å minimere virkningen).
Dette må utføres fra kommandolinjen, og den beste måten å komme dit på er fra Anaconda Navigator, deretter fanen "Environments", klikk deretter på trekanten ved siden av "root"-miljøet og velg "Open Terminal":
Denne operasjonen vil bare oppdatere det valgte miljøet (i dette tilfellet "root"-miljøet). Hvis du har andre miljøer du ønsker å oppdatere, kan du gjenta prosessen ovenfor, men klikk først på miljøet. Når det er valgt, er det en trekantet markør til høyre (se bildet over, trinn 3). Eller fra kommandolinjen kan du oppgi miljønavnet (-n envname
) eller banen (-p /path/to/env
), for eksempel for å oppdatere miljøet dspyr
fra skjermbildet ovenfor:
conda update -n dspyr --all
Hvis du bare er interessert i å oppdatere en enkelt pakke, klikker du bare på den blå pilen eller det blå versjonsnummeret i Navigator, f.eks. for astroid
eller astropy
i skjermbildet ovenfor, og dette vil merke disse pakkene for en oppgradering. Når du er ferdig, må du klikke på knappen "Bruk":
Eller fra kommandolinjen:
conda update astroid astropy
Hvis du ikke bryr deg om pakkeversjoner og bare vil ha "det siste settet med alle pakkene i standard Anaconda Distribution, så lenge de fungerer sammen", bør du ta en titt på dette sammendraget.
I de fleste tilfeller vil oppdatering av Anaconda-pakken i pakkelisten ha et overraskende resultat: du kan faktisk nedgradere mange pakker (faktisk er dette sannsynlig hvis den indikerer versjonen som tilpasset
). Sammendraget ovenfor gir detaljer.
Ditt root
-miljø er sannsynligvis ikke et godt sted å prøve å administrere et eksakt sett med pakker: det kommer til å være et dynamisk arbeidsområde med nye pakker installert og pakker tilfeldig oppdatert. Hvis du trenger et eksakt sett med pakker, må du opprette et conda-miljø for å holde dem. Takket være conda-pakkebufferen og måten filkobling brukes på, er dette vanligvis i) raskt og ii) bruker veldig lite ekstra diskplass. F.eks.
conda create -n myspecialenv -c bioconda -c conda-forge python=3.5 pandas beautifulsoup seaborn nltk
conda-dokumentasjonen har flere detaljer og eksempler.
Ingenting av dette kommer til å hjelpe med å oppdatere pakker som er installert fra PyPI via pip
eller noen pakker installert ved hjelp av python setup.py install
. conda list
vil gi deg noen hint om de pip-baserte Python-pakkene du har i et miljø, men det vil ikke gjøre noe spesielt for å oppdatere dem.
Det er stort sett nøyaktig den samme historien, med unntak av at du kanskje ikke kan oppdatere root
-miljøet hvis det ble installert av noen andre (si til /opt/anaconda/latest
). Hvis du ikke er i stand til å oppdatere miljøene du bruker, bør du kunne klone og deretter oppdatere:
conda create -n myenv --clone root
conda update -n myenv --all
Hvis du prøver å oppdatere Anaconda-versjonen din til en ny, vil du legge merke til at det ikke fungerer å kjøre det nye installasjonsprogrammet, da det klager over at installasjonskatalogen ikke er tom.
Så du bør bruke conda til å oppgradere som beskrevet av offisielle dokumenter:
conda update conda
conda update anaconda
Bare høyreklikk på Anaconda Prompt i startmenyen]1.
Dette forhindrer feilen:
ERROR conda.core.link:_execute(502): En feil oppstod under avinstallering av pakken 'defaults::conda-4.5.4-py36_0'. PermissionError(13, 'Tilgang nektes')
Åpne "kommando- eller conda-ledeteksten" og kjør:
conda update conda
conda update anaconda
Det er lurt å kjøre begge kommandoene to ganger (etter hverandre) for å være sikker på at alle grunnfilene er oppdatert.
Dette bør sette deg tilbake på de nyeste 'utgivelsene', som inneholder pakker som er valgt av folkene på Continuum for å fungere godt sammen.
Hvis du vil at den siste versjonen av hver pakke skal kjøres (dette kan føre til et ustabilt miljø):
conda update --all
Håper dette hjelper.
Kilder: