안녕하세요. 문범우입니다.
이번 포스팅부터는 aws 서버에 장고 프로젝트를 배포하는 방법에 대해서 알아보도록 하겠습니다.
먼저 진행되는 환경은 다음과 같습니다.
macOS High Sierra
python version: 3.6.5
django version: 2.0
이번 포스팅에서 진행되는 가상환경을 구성하기 위해 필요한 pyenv, virturalenv 등을 제외하고는 윈도우도 거의 비슷한 진행방식으로 가능할 것이라 생각됩니다.
1. pyenv 설치
장고 프로젝트를 배포할때 먼저 로컬에서 가상환경을 구성하고, 그 위에 배포할 장고 프로젝트를 구성해야 합니다.
또한 aws 서버에서 ubuntu를 이용하며 똑같이 가상환경을 이용합니다.
먼저 pyenv 설치하기 전에 아래와 같은 추가적인 패키지들을 설치해줍니다.
1 2 3 | $ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev | cs |
위의 내용들은 서버 배포시에 공통적으로 발생하는 문제들을 막기 위해 설치하는 것들이며 pyenv 사이트에도 나오는 내용입니다.
https://github.com/pyenv/pyenv/wiki/Common-build-problems
이제 git clone을 통해 실제로 pyenv를 설치하고 환경변수 설정까지 진행해 보도록 하겠습니다.
1 2 3 4 | $ git clone https://github.com/pyenv/pyenv.git ~/.pyenv $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile | cs |
저와 같은 경우에는 zsh를 사용하기 때문에 위의 명령어 중 아래 3줄에 대해서 ~/.bash_profile 대신 ~/.zshrc 를 입력합니다.
1 2 3 | $ source ~/.bash_profile $ pyenv versions * system (set by /home/nelp/.pyenv/version) | cs |
이제 위의 명령어로 터미널창을 재시작해주고 정상적으로 설치되었는지 확인하기 위해 pyenv versions 명령어를 입력합니다. 현재 우리는 pyenv를 통해 추가적으로 설치한 것이 없기 때문에 단순히 system만 나올 것 입니다.
이제 pyenv를 통해 원하는 파이썬 버전을 설치하고 즉각적으로 이용할 수 있습니다.
특정 버전을 설치하는 방법은 아래와 같습니다.
1 | $ pyenv install 3.6.5 | cs |
위와 같이 pyenv install ~ 뒤에 특정 버전을 입력해주면 설치가 되고, 해당 버전을 사용하기 위해서는
1 | $ pyenv shell 3.6.5 | cs |
와 같이 입력하면 됩니다.
2. virtualenv 설치
먼저 pyenv와 같이 git clone을 이용하여 설치합니다.
1 2 3 | $ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv $ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile $ source ~/.bash_profile | cs |
이를 통해 virtualenv가 설치되었으면 이제 우리는 특정 파이썬 버전을 가지는 가상환경을 구성할 수 있습니다.
가상환경을 만드는 방법은,
1 | pyenv virtualenv 3.6.5 myenv | cs |
와 같이, pyenv virtualenv <원하는 파이썬 버전> <가상환경 이름> 을 입력해주면 됩니다.
이때 파이썬 버전은 pyenv 를 통해 설치되어 있는 버전만 가능합니다.
현재 생성되어 있는 가상환경 목록을 보기 위해서는 다음의 명령어를 입력하면 됩니다.
1 | pyenv virtualenvs | cs |
또한, 자신이 만든 가상환경으로 진입하기 위해서는,
1 | pyenv activate myenv | cs |
와 같이, pyenv activate <가상환경 이름> 을 입력하면 됩니다.
가상환경에 진입하면 터미널에서 유저이름 앞에 (myenv) 와 같이 진입되어 있는 가상환경의 이름을 보여줍니다.
만약 가상환경을 나가고 싶다면,
1 | pyenv deactivate | cs |
를 입력하시면 됩니다.
3. 서버 배포를 위한 장고 환경 구성하기
위에서 pyenv 와 virtualenv의 설치가 정상적으로 되었다면, 실제로 서버 배포를 위해 장고프로젝트의 가상환경을 구성해보도록 하겠습니다.
먼저 파이썬 3.6.5 버전의 django_deploy라는 가상환경을 만듭니다.
1 | pyenv virtualenv 3.6.5 django_deploy | cs |
그리고 django_deploy라는 이름의 폴더를 새로 만들고 해당 폴더로 들어갑니다.
1 2 | mkdir django_deploy cd django_deploy | cs |
그리고 해당 위치에서 다음과 같은 명령어를 입력합니다.
1 | pyenv local django_deploy | cs |
위의 명령어는 해당 위치에 .python-version 파일을 만들어주면서, 해당 폴더로 가면 바로 django_deploy라는 가상환경에 진입하도록 해주는 명령어 입니다.
이렇게 장고 프로젝트를 위한 기본적인 가상환경 구성은 완료입니다.
이제 해당 가상환경에서 django를 설치하고, pip freeze > requirements.txt 명령어를 통해 패키지목록을 저장해둡니다.
또한 자유롭게 git 설정을 하시면 됩니다.
'Web 관련 > django' 카테고리의 다른 글
장고(django) #4_ admin 페이지 사용해보기 (0) | 2018.07.31 |
---|---|
장고(django) #3_ django에서 postgreSQL 사용하기 (3) | 2018.07.25 |
장고(django) #2_ 첫 화면 만들어보기 (5) | 2018.07.25 |
장고(django) #1_ 장고 설치하기 및 프로젝트 시작하기 (1) | 2018.07.22 |