내 로컬 컴퓨터의 가상 환경에서 작업하던 program을 프론트와 연동하기 위해서는 원격 서버를 이용하여 django 서버를 열어야 한다.
Amazon EC2를 이용하여 instance를 생성하여 우분투 서버를 열었는데 새로운 서버에서 생성한 가상환경에는 (당연하게도) 내 로컬 컴퓨터 가상환경의 package들이 설치되어있지 않다.
Github에 올려놓은 프로젝트르 clone 받아 실행해 보는데 package이 설치되어 있지 않으니 계속 오류 메세지가 뜨고, 하나씩 설치하고 있는데 설치하면서도 이게 맞나... 싶어서 찾아보니 requirements.txt를 이용하면 한번에 설치가 가능했다.
로컬 컴퓨터 가상 환경에서
pip freeze > requirements.txt
위의 명령어를 통해 설치된 package들을 requirements.txt에서 확인해 볼 수 있었다.
requirements.txt는 명령어를 실행한 그 current directory에 생성된다.
이 requirements.txt를 새로 생성한 가상환경으로 가져와
pip install -r requirements.txt
명령어로 설치해주었다.
requirements.txt를 이용하면 하나씩 module을 설치할 필요 없이 한번에 필요한 module들을 설치 할 수 있다.
또한, 프로젝트를 진행하면서 같은 module이어도 버전 때문에 오류가 났던 적이 꽤 있었는데,
requirements.txt를 이용하면, 다른 환경에서 내 프로그램을 실행할 때 버전으로 인한 오류를 피할 수 있다.
+) 로컬에 있는 requirements.txt 파일을 ubuntu 서버로 가져오는 코드
scp -i .ssh/'키페어'.pem path/requirements.txt ubuntu@your-instance-ip:/path/on/remote/server
'Django' 카테고리의 다른 글
| [Python] OpenAPI JSON 데이터 받아오기 (1) | 2024.01.18 |
|---|---|
| [Python] 가상 환경이란? (Virtual Environment) (1) | 2023.10.05 |
| [Django] DRF JWT 인증 방식을 이용한 회원가입 & 로그인 (3. 이메일 로그인/로그아웃) (4) | 2023.09.01 |
| [Django] DRF JWT 인증 방식을 이용한 회원가입 & 로그인 (2. 이메일 회원가입) (3) | 2023.08.18 |
| [Django] DRF JWT 인증 방식을 이용한 회원가입 & 로그인 (1. User Custom) (3) | 2023.08.18 |