3 분 소요

평소에 Colab을 쓰려면 브라우저를 열고, 노트북을 만들고, 런타임 유형을 GPU로 바꾸는 과정을 매번 거쳐야 한다. 그런데 터미널만 켜 두고 작업하는 입장에서는 이게 은근히 번거롭다. 그래서 터미널에서 바로 Colab GPU 세션을 띄워 주는 google-colab-cli를 설치해 봤다.

맥(macOS)에서 설치하는 과정에서 externally-managed-environment 에러를 만났는데, 같은 상황을 겪는 사람이 많을 것 같아서 해결 과정과 사용법을 같이 정리한다.

설치 시도 - externally-managed-environment 에러

먼저 평소처럼 pip으로 설치를 시도했다.

python3.12 -m pip install google-colab-cli

그런데 곧바로 에러가 떨어진다.

google-colab-cli pip 설치 시 externally-managed-environment 에러

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try brew install
    xyz, where xyz is the package you are trying to
    install.

    If you wish to install a Python library that isn't in Homebrew,
    use a virtual environment:

    python3 -m venv path/to/venv
    source path/to/venv/bin/activate
    python3 -m pip install xyz

이건 내 환경이 잘못된 게 아니라 PEP 668에 따른 정상적인 동작이다. Homebrew로 설치한 파이썬은 시스템 전역(system-wide)으로 pip 패키지가 함부로 깔리는 걸 막아 둔다. 시스템 파이썬이 꼬여서 OS나 Homebrew가 망가지는 걸 방지하기 위한 안전장치다.

그래서 에러 메시지도 친절하게 세 가지 대안을 알려 준다.

  • brew install로 설치하기 (Homebrew에 있는 패키지일 경우)
  • python3 -m venv로 가상환경을 만들어 그 안에 설치하기
  • pipx install로 애플리케이션 단위로 설치하기

해결 - break-system-packages 플래그

에러 메시지를 아래로 더 내려 보면, 기존 pip 동작을 되살리는 방법도 안내되어 있다.

break-system-packages 플래그 안내 메시지

You may restore the old behavior of pip by passing
the '--break-system-packages' flag to pip, or by adding
'break-system-packages = true' to your pip.conf file. The latter
will permanently disable this error.

핵심은 --break-system-packages 플래그다. 이 플래그를 붙이면 PEP 668의 보호를 잠시 무시하고 예전처럼 사용자 영역에 패키지를 설치한다. 그래서 명령에 플래그만 추가해서 다시 실행했다.

python3.12 -m pip install google-colab-cli --break-system-packages

참고로 메시지에도 나오듯이, 이 방식은 --user 플래그를 함께 쓰거나 가상환경을 쓰는 게 더 안전하다. --break-system-packages를 남발하면 Homebrew 파이썬이 꼬일 수 있으니, 정석대로 하려면 pipx install google-colab-cli 또는 venv를 쓰는 걸 추천한다. 나는 빠르게 쓰려고 플래그 방식을 택했다.

PATH 설정 - colab 명령 인식시키기

--break-system-packages로 설치하면 실행 파일(colab)이 시스템 PATH가 아니라 사용자 파이썬 bin 디렉터리에 들어간다. macOS에서 python3.12로 설치하면 보통 ~/Library/Python/3.12/bin 경로다. 이 경로가 PATH에 없으면 colab 명령을 입력해도 command not found가 뜬다.

그래서 zsh 설정에 PATH를 추가하고 바로 반영했다.

zshrc에 Python bin 경로를 PATH로 추가

echo 'export PATH="$HOME/Library/Python/3.12/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc
  • echo '...' >> ~/.zshrc : zsh를 켤 때마다 PATH가 잡히도록 설정 파일에 한 줄 추가
  • source ~/.zshrc : 터미널을 다시 켜지 않고 바로 적용

이제 colab 명령을 어디서든 인식한다.

세션 생성 - colab new –gpu T4

준비가 끝났으니 본론이다. T4 GPU를 붙인 새 세션을 만든다.

colab new --gpu T4

colab new --gpu T4 실행과 인증 코드 입력 안내

[colab] Creating session 'b900e1'...

To authorize colab-cli, visit this URL in any browser:

(인증용 URL)

After approving, Google will display an authorization code.
Enter the authorization code:

명령을 실행하면 세션 ID(여기서는 b900e1)와 함께 세션이 만들어지기 시작한다. 그리고 처음 실행할 때는 Google 계정 인증이 필요하다. 터미널에 표시된 URL을 브라우저에 붙여 넣어 접속하면 된다.

인증 - gcloud CLI 로그인

URL로 접속하면 익숙한 Google 로그인 화면이 나온다.

gcloud CLI 로그인 화면

Sign in to the gcloud CLI

You are seeing this page because you ran the following command
in the gcloud CLI from this or another machine. If this is not
the case, close this tab.

gcloud auth application-default login --no-launch-browser

google-colab-cli는 내부적으로 Google Cloud 인증(gcloud auth application-default login)을 사용한다. 이 화면에서 Colab을 쓸 Google 계정으로 로그인하고 권한을 승인하면, 인증 코드(authorization code)가 발급된다.

그 코드를 다시 터미널의 Enter the authorization code: 자리에 붙여 넣으면 인증이 완료되고 세션이 GPU와 함께 올라온다. 한 번 인증해 두면 다음부터는 이 과정을 건너뛴다.

정리

전체 흐름을 한눈에 정리하면 이렇다.

# 1. 설치 (맥에서 externally-managed-environment 에러가 나면 플래그 추가)
python3.12 -m pip install google-colab-cli --break-system-packages

# 2. PATH 등록
echo 'export PATH="$HOME/Library/Python/3.12/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc

# 3. T4 GPU 세션 생성 + 최초 1회 인증
colab new --gpu T4

브라우저로 들어가서 런타임을 바꾸고 GPU를 할당받던 과정을, 터미널에서 명령 한 줄로 끝낼 수 있다는 게 가장 큰 장점이다. 터미널 위주로 작업하는 사람이라면 한 번 써 볼 만하다.

다만 --break-system-packages는 어디까지나 임시방편이라는 점은 기억해 두자. 환경을 깔끔하게 유지하고 싶다면 pipx나 가상환경으로 설치하는 걸 권한다.

맨 위로 이동하기

댓글남기기