터미널에서 Colab GPU 쓰기
평소에 Colab을 쓰려면 브라우저를 열고, 노트북을 만들고, 런타임 유형을 GPU로 바꾸는 과정을 매번 거쳐야 한다. 그런데 터미널만 켜 두고 작업하는 입장에서는 이게 은근히 번거롭다. 그래서 터미널에서 바로 Colab GPU 세션을 띄워 주는 google-colab-cli를 설치해 봤다.
맥(macOS)에서 설치하는 과정에서 externally-managed-environment 에러를 만났는데, 같은 상황을 겪는 사람이 많을 것 같아서 해결 과정과 사용법을 같이 정리한다.
설치 시도 - externally-managed-environment 에러
먼저 평소처럼 pip으로 설치를 시도했다.
python3.12 -m pip install google-colab-cli
그런데 곧바로 에러가 떨어진다.

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 동작을 되살리는 방법도 안내되어 있다.

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를 추가하고 바로 반영했다.

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] 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 로그인 화면이 나온다.

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나 가상환경으로 설치하는 걸 권한다.
댓글남기기