Ghost에서 Zulip까지: WSL2에서 Zulip을 로컬로 설정하기 (그리고 까다로운 Python 문제 해결)
Source: Dev.to

소개
Ghost에 기여한 뒤, 더 크고 복잡한 백엔드 시스템에 도전하고 싶었습니다.
그 호기심이 저를 Zulip으로 이끌었습니다. Zulip은 주제 기반 스레딩과 프로덕션 급 아키텍처로 유명한 오픈소스 팀 협업 도구입니다.
Zulip은 다음으로 구성됩니다:
- Django
- Tornado
- PostgreSQL
- RabbitMQ
Zulip을 로컬에 설정하는 것은 어렵지 않지만, 일반적인 Django 프로젝트와는 매우 다릅니다. 특히 Python 가상 환경과 WSL 설정과 관련해서 몇 가지 예상치 못한 문제에 부딪혔습니다.
이 글에서는 다음 내용을 다룹니다:
- WSL2에서 Zulip을 로컬에 설정한 방법
- 설정 중에 마주한 문제들
activate_this.py문제를 포함한 해결 방법
Zulip을 처음 사용하거나 더 큰 백엔드 시스템으로 옮겨가는 경우, 이 가이드를 통해 흔히 겪는 설정 장애를 피할 수 있을 것입니다.
이 게시물이 대상인 사람
- Zulip에 처음 기여하는 개발자
- 작은 프로젝트를 넘어 오픈소스에 기여하는 사람
- Windows에서 WSL2를 사용하는 모든 사람
- Python 3.12 또는
activate_this.py오류에 갇힌 개발자
Prerequisites
General
- 2 GB+ RAM
- Stable internet connection
- GitHub account
Windows
- Windows 10/11 (64‑bit)
- Virtualisation enabled (VT‑x / AMD‑V)
- Admin access
Git and GitHub Setup
If Git is already configured, you can skip this section.
-
Generate an SSH key
ssh-keygen -t ed25519 -C "your_email@example.com" -
Copy the public key
cat ~/.ssh/id_ed25519.pub -
Add it to GitHub → Settings → SSH and GPG Keys.
Zulip용 WSL2 설정
이미 네이티브 Ubuntu 또는 WSL2를 사용하고 있다면, 바로 다음 단계로 넘어가세요.
가상화 활성화
BIOS에서 VT‑x / AMD‑V가 활성화되어 있는지 확인합니다.
WSL2 설치
wsl --install
이 명령으로 Ubuntu가 자동으로 설치됩니다.
systemd 활성화 (필수)
Zulip은 PostgreSQL, Redis, RabbitMQ와 같은 백그라운드 서비스에 의존합니다.
sudo nano /etc/wsl.conf
다음 내용을 추가합니다:
[boot]
systemd=true
WSL을 재시작합니다:
wsl --shutdown
필수 서비스 설치
sudo apt update && sudo apt upgrade
sudo apt install rabbitmq-server memcached redis-server postgresql
RabbitMQ 설정
sudo nano /etc/rabbitmq/rabbitmq-env.conf
다음 내용을 추가합니다:
NODE_IP_ADDRESS=127.0.0.1
NODE_PORT=5672
Zulip 저장소 복제
-
GitHub에서 Zulip을 포크한 뒤 포크를 복제합니다:
git clone --config pull.rebase git@github.com:YOURUSERNAME/zulip.git cd zulip git remote add -f upstream https://github.com/zulip/zulip.git
Zulip 로컬 실행
-
의존성 설치
./tools/provision -
가상 환경 활성화
source .venv/bin/activate -
개발 서버 시작
./tools/run-dev -
접속
http://localhost:9991
내가 겪은 일반적인 문제들 (그리고 해결 방법)
문제 1: activate_this.py 누락
오류
FileNotFoundError: No such file or directory ... activate_this.py
이유
Zulip이 이제 uv를 사용하기 때문에 activate_this.py 파일을 자동으로 생성하지 않습니다. 일부 스크립트는 여전히 이 파일이 존재하기를 기대합니다.
해결 방법
파일을 직접 만들기:
cat > .venv/bin/activate_this.py
- Zulip Dev Docs:
- Zulip Community Chat:
- WSL Docs:
- uv: 