Jak mogę stworzyć plik środowiska Anaconda, który będzie używany na innych komputerach?
Wyeksportowałem moje środowisko anaconda Python do YML za pomocą conda env export > environment.yml
. Wyeksportowany environment.yml
zawiera tę linię, prefix: /home/superdev/miniconda3/envs/juicyenv
która odwzorowuje lokalizację mojej anakondy, która będzie inna na komputerach innych.
conda env create -f environment.yml
Tak na marginesie, z mojego doświadczenia wynika, że nie będzie to działać na różnych platformach, ponieważ conda env wyświetli wiele zależności, takich jak `vs2015_runtime`, jeśli używasz systemu Windows. Ale oczywiście nie jest to dostępne w systemie Linux.environment.yml
pliku, więc możesz go pominąć - zobacz stackoverflow.com/questions/39280638/ ...Odpowiedzi:
W
conda
specyfikacjach nie mogę znaleźć niczego, co pozwala wyeksportować plik środowiska bezprefix: ...
linii. Jednak, jak zauważył Alex w komentarzach, conda wydaje się nie przejmować linią prefiksu podczas tworzenia środowiska z pliku.Mając to na uwadze, jeśli chcesz, aby inny użytkownik nie wiedział o Twojej domyślnej ścieżce instalacji, możesz usunąć linię przedrostka z
grep
przed napisaniem doenvironment.yml
.Tak czy inaczej, drugi użytkownik wykonuje następnie:
a środowisko zostanie zainstalowane w domyślnej ścieżce środowiska Conda.
Jeśli chcesz określić inną ścieżkę instalacji niż domyślna dla twojego systemu (niezwiązana z „prefiksem” w environment.yml), po prostu użyj
-p
flagi, po której następuje wymagana ścieżka.Zauważ, że Conda zaleca ręczne tworzenie
environment.yml
, co jest szczególnie ważne, jeśli chcesz udostępniać swoje środowisko na różnych platformach (Windows / Linux / Mac). W takim przypadku możesz po prostu pominąć tęprefix
linię.źródło
Najłatwiejszym sposobem zapisania pakietów ze środowiska do zainstalowania na innym komputerze jest:
następnie możesz zainstalować środowisko za pomocą
jeśli używasz
pip
, użyj następujących poleceń: odniesienie https://pip.pypa.io/en/stable/reference/pip_freeze/źródło
Linux
Windows
Uzasadnienie: domyślnie
conda env export
zawiera informacje o kompilacji:Zamiast tego możesz wyeksportować swoje środowisko bez informacji o kompilacji:
Co uwalnia środowisko od wersji Pythona i systemu operacyjnego.
źródło
Uważam, że eksportowanie pakietów tylko w formacie ciągów jest bardziej przenośne niż eksportowanie całego
conda
środowiska. Jak sugerowała poprzednia odpowiedź:Jednak ta
requirements.txt
zawiera numery kompilacji, które nie są przenośne pomiędzy systemami operacyjnymi, na przykład pomiędzyMac
iUbuntu
. Wconda env export
mamy opcję,--no-builds
ale nie zconda list -e
, więc możemy usunąć numer kompilacji, wydając następujące polecenie:I odtwórz środowisko na innym komputerze:
źródło
sed
polecenie działało całkiem nieźle. Musiałem usunąć wersję łatki. Więcmajor.minor.patch
domajor.minor
i zadziałało. Okazuje się, że niższy numer poprawki został usunięty przez główne repozytoria.źródło