$ pyenv versions system 3.8.1 * anaconda3-5.3.1 (set by /Users/qkboo/.pyenv/version)
일반적으로 Anaconda 만을 사용한다면 설치후 사용자 쉘 환경에서 conda 를 사용하기 위해서 환경변수를 초기화 해야 하는데 다음 명령으로 실행한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
$ conda init bash no change /Users/qkboo/.pyenv/versions/anaconda3-5.3.1/condabin/conda no change /Users/qkboo/.pyenv/versions/anaconda3-5.3.1/bin/conda no change /Users/qkboo/.pyenv/versions/anaconda3-5.3.1/bin/conda-env no change /Users/qkboo/.pyenv/versions/anaconda3-5.3.1/bin/activate no change /Users/qkboo/.pyenv/versions/anaconda3-5.3.1/bin/deactivate no change /Users/qkboo/.pyenv/versions/anaconda3-5.3.1/etc/profile.d/conda.sh no change /Users/qkboo/.pyenv/versions/anaconda3-5.3.1/etc/fish/conf.d/conda.fish no change /Users/qkboo/.pyenv/versions/anaconda3-5.3.1/shell/condabin/Conda.psm1 no change /Users/qkboo/.pyenv/versions/anaconda3-5.3.1/shell/condabin/conda-hook.ps1 no change /Users/qkboo/.pyenv/versions/anaconda3-5.3.1/lib/python3.7/site-packages/xontrib/conda.xsh no change /Users/qkboo/.pyenv/versions/anaconda3-5.3.1/etc/profile.d/conda.csh modified /Users/qkboo/.bash_profile
==> For changes to take effect, close and re-open your current shell. <==
위 명령은 아래 환경 변수가 작용해서 conda 의 가상환경을 다루는 쉘 스크립을 실행해 준다.
보통 conda init 를 해주면 쉘 스크립의 마지막 위치에 삽입된다. 그러므로 .bash_profile 에 있는 pyenv 초기화가 항상 마지막에 실행되도록 하자.
1
pyenv 와 anaconda 환경의 전환 정리
Examples of managing virtual environments.
1 2 3 4 5 6
# virtual environments from pyenv pyenv install 3.6.9 pyenv virtualenv 3.6.9 new-env pyenv activate new-env pyenv deactive # You can also use `pyenv local`
1 2 3 4 5
# virtual environments from conda conda create -n new-env python=3.6 conda env list conda activate new-env conda deactivate
1
1
anaconda 패키지와 환경관리를 할 수 있는 conda 명령어 몇가지를 소개
1 2 3 4 5 6 7 8 9 10 11
// 아나콘다의 버전 확인 conda --version
// 아나콘다 버전 업데이트 conda update conda
// 설치된 패키지 리스트 conda list
// conda 통해 설치 가능한 패키지 검색 conda search "tensorflow"
conda에서 개발 준비하기
Anaconda 설치가 완료되면 conda 명령으로 TensorFlow를 사용할 환경을 구성하고 사용해 보자.
conda 툴을 사용하는 anaconda, miniconda 가 혼재된 환경에서 pyenv로 가상환경을 즉시 활성화 시키면 conda 명령 실행에 혼선을 일으킨다. 예를 들어 위의 가상환경 anaconda3-5.3.1/envs/opencv4 을 pyenv로 활성화 하고 python, conda 명령을 실행해 보면
1 2 3 4 5
~$ pyenv shell opencv4 ~$ pyenv version opencv4 (set by PYENV_VERSION environment variable) ~$ which python /Users/qkboo/.pyenv/shims/python
가상환경의 python 위치를 확인해 보고, conda 명령을 찾아 보자,
1 2 3 4 5 6 7 8 9
~$ pyenv which python /Users/qkboo/.pyenv/versions/opencv4/bin/python $ pyenv which conda pyenv: conda: command not found
The `conda' command exists in these Python versions: anaconda3-5.3.1 miniconda3-latest
pyenv 환경 아래 2개의 conda 때문에 혼선이 나타난다.
예를 들어 현재 쉘 환경에서 파이썬 환경 ananconda3-5.3.1 을 사용하도록 하고, conda 를 확인해 보면 명확하게 해당 파이썬 환경의 anaconda 의 가상환경을 가르키지만! conda env 명령의 결과는 다르게 나타낸다. anaconda 뒤에 minicond를 설치해서 miniconda 가상환경이 우선으로 나타난다.
1 2 3 4 5 6 7 8 9 10 11 12
~$ pyenv shell anaconda3-5.3.1 ~$ pyenv which conda /Users/qkboo/.pyenv/versions/anaconda3-5.3.1/bin/conda ~$ conda env list # conda environments: # base * /Users/qkboo/.pyenv/versions/miniconda3-latest deep_learning /Users/qkboo/.pyenv/versions/miniconda3-latest/envs/deep_learning django3 /Users/qkboo/.pyenv/versions/miniconda3-latest/envs/django3 tf24_cpu /Users/qkboo/.pyenv/versions/miniconda3-latest/envs/tf24_cpu tf2_p37 /Users/qkboo/.pyenv/versions/miniconda3-latest/envs/tf2_p37 tkinter /Users/qkboo/.pyenv/versions/miniconda3-latest/envs/tkinter
그래서 가상환경 활성화시 가상환경 디렉토리를 지정해서 사용하자!
그래서 anaconda 와 miniconda 환경을 활성화 시키려면 shell, local, system 명령을 통해 설치된 파이썬 환경을 활성화 하고, 해당 파이썬 환경에서 가상환경을 다루는 것이 좋다.
예를 들어 현재 쉘 환경에서 파이썬 환경 ananconda3-5.3.1 을 사용하도록 실제 가상환경 위치를 지정해서 활성화 한다.