맥 아나콘다 환경변수 - maeg anakonda hwangyeongbyeonsu

주절 주절...

Python으로 개발환경을 세팅하려다, 이것 저것 라이브러리를 설치하다보면 맥이 더러워(?)진다.

그래서 가상환경을 통해서 깔끔하게 관리해보려고 한다.

Anaconda는 150여개의 package를 미리 포함하고 있기 때문에, 용량이 많고 설치가 오래걸린다.

(게다가 당장 필요없는 라이브러리들이 너무 많다)

그래서 Anaconda의 경량화버전인 Miniconda로 가상환경을 구축하기로 했다.


1. Miniconda 설치

https://docs.conda.io/en/latest/miniconda.html2

위 경로에서 PC의 종류에 맞는 Miniconda를 다운받은 후 설치를 진행한다.

나의 경우, Python 3.9의 Miniconda3 MacOSX 64-bit pkg 로 설치를 진행했다.

2. Miniconda Path설정(conda 4.9.2, 2021-04-20 기준)

2-1 설치경로 확인

miniconda 설치 경로는 /opt/miniconda3/ 이다

여기서 /opt/miniconda3/bin 에 conda와 python3.9 실행 파일이 있으므로 이 경로를 Path에 추가해주면 된다.

2-2 SHEEL 종류 확인

Terminal을 실행하고, echo $SHELL 명령을 실행한다

  • Bash 일 경우 수정할 파일
    ~/.bash_profile
    or
    ~/.bashrc

  • /bin/zsh 일 경우 수정할 파일
    ~/.zshrc

자신에게 해당하는 파일의 제일 하단에 아래 명령어를 추가해주면 된다

**export PATH="/opt/miniconda3/bin:$PATH"**

2-3 conda Path설정 확인

**\> conda --version**

**conda 4.9.2**

성공!

export PATH="/Users/username/anaconda/bin:$PATH"

conda 설치 후 conda를 사용하기 위해서는 ~/.zshrc 파일을 열어서 위 명령어를 추가해줘야한다.

그 다음 source 해주면 된다.

source ~/.zshrc

Error01: CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.

conda env list는 되는데, activate가 안되는 경우 

source ~/opt/anaconda3/etc/profile.d/conda.sh

# opt 폴더 경로가 ~/opt 아니라 /opt 일 수 있습니다.

source [아나콘다경로]/etc/profile.d/conda/sh 를 해줘야한다.

하지만 터미널을 껐다 다시 키면 같은 문제가 반복 된다.

이 경우에는 위 코드를 ~./zshrc 에 추가해주면 해결된다.

Error02: Insecure completion-dependent directories detected:

[oh-my-zsh] Insecure completion-dependent directories detected:
lrwxr-xr-x  1 rafael  admin  88 Apr 28 15:51 /usr/local/share/zsh/site-functions/_brew_services -> ../../../Homebrew/Library/Taps/homebrew/homebrew-services/completions/zsh/_brew_services
[oh-my-zsh] For safety, completions will be disabled until you manually fix all
[oh-my-zsh] insecure directory permissions and ownership and restart oh-my-zsh.
[oh-my-zsh] See the above list for directories with group or other writability.

만약 위와 같은 에러가 뜬다면 두가지 해결 방법이 있다. 참고: github.com/ohmyzsh/ohmyzsh/issues/6835

1. 해당 파일들의 권한을 수정해주거나

chmod 755 /usr/local/share/zsh
chmod 755 /usr/local/share/zsh/site-functions

2. "Set ZSH_DISABLE_COMPFIX=true" 명령어 zshrc 파일에 추가해주는 방법이다.

Set ZSH_DISABLE_COMPFIX=true

어떤 방법이 좋은 지는 잘 모르겠는데, 혹시 아시는 분 계시다면 댓글남겨주세요...ㅎ

환경변수 초기화 문제

맥OS에서 환경변수를 설정할 때 ~/.bash_profile 파일에 설정해주고 source시켜 등록을 했습니다. 그런데 터미널을 닫았다가 다시 실행하는 행위가 진행되면 다시 .bash_profile 파일을 source 시켜주어야 하는 번거로움을 계속 하고 계시는 분들이 있을겁니다. 저도 그랬고 대부분의 맥OS 유저의 문제는 Oh My Zsh를 이용해서 터미널의 테마를 한번 변경했기 때문이라고 생각합니다.

Oh My Zsh를 기본 터미널로 설정할 경우 ~/.bash_profile이 아니라 ~/.zshrc를 실행해주는 것을 알게 되었습니다. Oh My Zsh를 기본 터미널로 사용하고 계신다면 .zshrc 파일에 PATH를 등록해서 사용하면 됩니다. ( https://myjamong.tistory.com/152)

[맥 환경변수 설정] 터미널 재부팅 시 환경변수 초기화 문제 해결 :: 마이자몽

환경변수 초기화 문제 맥OS에서 환경변수를 설정할 때 ~/.bash_profile 파일에 설정해주고 source시켜 등록을 했습니다. 그런데 터미널을 닫았다가 다시 실행하는 행위가 진행되면 다시 .bash_profile 파

myjamong.tistory.com

맥 아나콘다 환경변수 - maeg anakonda hwangyeongbyeonsu

env 리스트 확인

env는 파이썬 프로젝트 별 독립 실습 환경이다.

현재는 base 밖에 없다.

(base) ➜  ~ conda env list
/opt/anaconda3/lib/python3.8/multiprocessing/resource_tracker.py:216: UserWarning: resource_tracker: There appear to be 1 leaked semaphore objects to clean up at shutdown
  warnings.warn('resource_tracker: There appear to be %d '
# conda environments:
#
base                  *  /opt/anaconda3

신규 프로젝트를 위한 env 생성

프로젝트 마다 파이썬 버전이나 요구되는 requirement가 다를 수 있으므로 신규 프로젝트를 위한 env를 생성해준다.

env는 프로젝트 명과 동일하게 search-chat-rule이라고 적었다.

(base) ➜  ~ conda create -n search-chat-rule python=3.8
Collecting package metadata (current_repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 4.8.3
  latest version: 4.10.3

Please update conda by running

    $ conda update -n base -c defaults conda



## Package Plan ##

  environment location: /opt/anaconda3/envs/search-chat-rule

  added / updated specs:
    - python=3.8


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    ca-certificates-2021.7.5   |       hecd8cb5_1         113 KB
    certifi-2021.5.30          |   py38hecd8cb5_0         139 KB
    openssl-1.1.1k             |       h9ed2024_0         2.2 MB
    pip-21.1.3                 |   py38hecd8cb5_0         1.8 MB
    python-3.8.10              |       h88f2d9e_7        20.9 MB
    readline-8.1               |       h9ed2024_0         333 KB
    setuptools-52.0.0          |   py38hecd8cb5_0         714 KB
    sqlite-3.36.0              |       hce871da_0         1.1 MB
    wheel-0.36.2               |     pyhd3eb1b0_0          33 KB
    ------------------------------------------------------------
                                           Total:        27.3 MB

The following NEW packages will be INSTALLED:

  ca-certificates    pkgs/main/osx-64::ca-certificates-2021.7.5-hecd8cb5_1
  certifi            pkgs/main/osx-64::certifi-2021.5.30-py38hecd8cb5_0
  libcxx             pkgs/main/osx-64::libcxx-10.0.0-1
  libffi             pkgs/main/osx-64::libffi-3.3-hb1e8313_2
  ncurses            pkgs/main/osx-64::ncurses-6.2-h0a44026_1
  openssl            pkgs/main/osx-64::openssl-1.1.1k-h9ed2024_0
  pip                pkgs/main/osx-64::pip-21.1.3-py38hecd8cb5_0
  python             pkgs/main/osx-64::python-3.8.10-h88f2d9e_7
  readline           pkgs/main/osx-64::readline-8.1-h9ed2024_0
  setuptools         pkgs/main/osx-64::setuptools-52.0.0-py38hecd8cb5_0
  sqlite             pkgs/main/osx-64::sqlite-3.36.0-hce871da_0
  tk                 pkgs/main/osx-64::tk-8.6.10-hb0a8c7a_0
  wheel              pkgs/main/noarch::wheel-0.36.2-pyhd3eb1b0_0
  xz                 pkgs/main/osx-64::xz-5.2.5-h2de35cc_0
  zlib               pkgs/main/osx-64::zlib-1.2.11-h2de35cc_3


Proceed ([y]/n)? y


Downloading and Extracting Packages
certifi-2021.5.30    | 139 KB    | ##################################### | 100%
setuptools-52.0.0    | 714 KB    | ##################################### | 100%
wheel-0.36.2         | 33 KB     | ##################################### | 100%
pip-21.1.3           | 1.8 MB    | ##################################### | 100%
openssl-1.1.1k       | 2.2 MB    | ##################################### | 100%
readline-8.1         | 333 KB    | ##################################### | 100%
sqlite-3.36.0        | 1.1 MB    | ##################################### | 100%
ca-certificates-2021 | 113 KB    | ##################################### | 100%
python-3.8.10        | 20.9 MB   | ##################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate search-chat-rule
#
# To deactivate an active environment, use
#
#     $ conda deactivate

env list 확인

search-chat-rule이 생겼다.

(base) ➜  ~ conda env list
/opt/anaconda3/lib/python3.8/multiprocessing/resource_tracker.py:216: UserWarning: resource_tracker: There appear to be 1 leaked semaphore objects to clean up at shutdown
  warnings.warn('resource_tracker: There appear to be %d '
# conda environments:
#
base                  *  /opt/anaconda3
search-chat-rule         /opt/anaconda3/envs/search-chat-rule

생성한 env 사용

conda activate 명령어를 이용해 기본 환경이었던 (base)에서 search-chat-rule로 변경한다.

(base) ➜  ~ conda activate search-chat-rule
(search-chat-rule) ➜  ~

env 삭제

먼저 conda activate base 또는 conda deactivate 통해 삭제 할 env에서 벗어난 뒤

conda env remove -n search-chat-rule 을 이용해 삭제한다.

(search-chat-rule) ➜  ~ conda activate base
(base) ➜  ~ conda env remove -n search-chat-rule
/opt/anaconda3/lib/python3.8/multiprocessing/resource_tracker.py:216: UserWarning: resource_tracker: There appear to be 1 leaked semaphore objects to clean up at shutdown
  warnings.warn('resource_tracker: There appear to be %d '

Remove all packages in environment /opt/anaconda3/envs/search-chat-rule:

(base) ➜  ~ conda env list
/opt/anaconda3/lib/python3.8/multiprocessing/resource_tracker.py:216: UserWarning: resource_tracker: There appear to be 1 leaked semaphore objects to clean up at shutdown
  warnings.warn('resource_tracker: There appear to be %d '
# conda environments:
#
base                  *  /opt/anaconda3