Odpowiedź Pbms to właściwy sposób na zrobienie tego, zakładając, że masz istniejące środowisko do skopiowania. Conda jest w pełni zdolna do instalowania zarówno pakietów Conda, jak i pakietów pip, jak wymieniono w environment.yml
. Chciałem bardziej szczegółowo udokumentować cały proces. Zauważ, że używam środowisk opartych na folderach, dlatego dodałem--prefix [path to environment folder]
do większości poleceń.
Załóżmy, że zainstalowałeś środowisko dla istniejącego projektu w folderze o nazwie env
w bieżącym folderze, na przykład:
conda create --prefix ./env
Wygenerowałbyś environment.yml
dla środowiska tego projektu w następujący sposób:
conda env export --prefix ./env > environment.yml
Utworzyłbyś nowe środowisko w innym folderze, kopiując environment.yml
do niego, a następnie uruchamiając to stamtąd:
conda env create --prefix ./env --file environment.yml
Otrzymasz już istniejące środowisko do dopasowania environment.yml
, ponownie kopiując environment.yml
tam, a następnie uruchamiając to stamtąd:
conda env update --prefix ./env --file environment.yml --prune
Gdy dane środowisko jest aktywne, należy zweryfikować stan jego pakietów w następujący sposób:
conda list
To jest skrócona wersja tego, co może wydrukować to polecenie (zwróć uwagę, że pakiety pip są oznaczone pypi
):
pip 19.2.2 py37_0
python 3.7.4 h5263a28_0
numpy 1.16.4 py37h19fb1c0_0
pandas 0.25.1 py37ha925a31_0
pyodbc 4.0.27 py37ha925a31_0
ibm-db 3.0.1 pypi_0 pypi
ibm-db-sa 0.3.5 pypi_0 pypi
Wreszcie, jest to skrócona wersja tego, co environment.yml
może wyglądać (zwróć uwagę, że pakiety pip są wymienione w swojej własnej kategorii):
dependencies:
- pip=19.2.2=py37_0
- python=3.7.4=h5263a28_0
- numpy=1.16.4=py37h19fb1c0_0
- pandas=0.25.1=py37ha925a31_0
- pyodbc=4.0.27=py37ha925a31_0
- pip:
- ibm-db==3.0.1
- ibm-db-sa==0.3.5
Pamiętaj, że używanie Conda i pip razem może powodować zgagę, ponieważ mogą one nieświadomie zniszczyć wzajemne zależności. Powinieneś najpierw zainstalować wszystkie swoje pakiety Conda, a potem wszystkie pakiety pip, zamiast przełączać się między nimi. Jeśli twoje środowisko się zepsuje, oficjalnym zaleceniem jest jego usunięcie i ponowne utworzenie (z environment.yml
pliku). Więcej informacji można znaleźć w tym przewodniku:
https://www.anaconda.com/using-pip-in-a-conda-environment/