Django를 처음부터 설정해 보았다 (Vagrant, Centos, Python3)

소개



요 전날, 로컬 환경에서 Anaconda를 사용해 보았습니다만, 「이것을 브라우저로 표시할 수 없는 것인가… ?」라고 생각해, Django를 사용할 수 있는 환경을 만들기로 했습니다.

이번에는 Vagrant의 box 시작부터 브라우저에 Django의 가상 서버 화면을 표시하는 곳까지 실시했습니다.

결국,
브라우저에서 양식에 입력
→ 보낸 데이터를 기반으로 서버 측에서 기계 학습 모델 계산
→ 결과를 브라우저로 반환
라는 느낌의 앱을 만들 수 있다고 생각합니다.

실행 환경



호스트 OS: Windows10
게스트 OS: Centos7(Vagrant)

Vagrant Box 만들기



이쪽은 Vagrant+Python3+Django 환경에서 HelloWorld 를 참고로 했습니다.
명령 프롬프트로 작업합니다.
vagrant box add centos/7
vagrant init centos/7

생성된 Vagrantfile에 다음의 2행을 추기.
config.vm.synced_folder "./", "/home/vagrant/work"
config.vm.network "forwarded_port", guest: 8000, host: 18000

명령 프롬프트로 돌아가서 vagrant를 시작합니다.
vagrant up
vagrant ssh

Python3 설치



디폴트로 들어가 있는 것이 python2계만이었으므로, python3을 넣고 싶다. 향후를 생각하면, 버전 관리 소프트를 사용하는 것이 득책일까 생각했기 때문에, pyenv를 사용하기로 했습니다. 비추천인 것 같습니다만…
pyenv를 사용한 Python3 설치 를 참고로 하고 있습니다.

필요한 모든 것을 준비. 여기에서 Teraterm에서 작업하고 있습니다. vagrant ssh도 좋을지도 모릅니다.
$ sudo yum groupinstall "Development tools"
$ sudo yum install gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel git

pyenv 설치
$ git clone https://github.com/yyuu/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
$ source .bash_profile

pyenv 최신 버전으로
$ pyenv --version
pyenv 1.2.3-43-g35f7ef8
$ pyenv install --list # インストール可能なpythonが大量に出てきます
$ pyenv install 3.8.3 # 使いたいバージョンがあることを確認し、インストール
$ pyenv global 3.8.3

pyenv, python 버전 확인
$ pyenv versions
  system
* 3.8.3 (set by /home/vagrant/.pyenv/version)
$ python --version
Python 3.8.3


장고 설치



구 장고를 삭제 (존재하지 않는 것을 확인할 수 있으면 좋다)
$ python -c "import django; print(django.__path__)"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named django

virtualenv, virtualenvwrapper, django 설치
$ pip install virtualenv
$ pip install virtualenvwrapper
$ pip install Django

장고 버전 확인
$ python -m django --version
3.0.6

SQLite3 버전 업



Vagrant의 디폴트로 들어있는 SQLite3는 버젼이 낡은 것 같고, 그대로 서버를 기동하려고 하면 에러가 나오므로, 새로운 것을 인스톨 합니다.
장고 입문 (튜토리얼) - 토호호의 WWW 입문 가 참고가 되었습니다.
$ yum install -y wget gcc make
$ wget https://www.sqlite.org/2019/sqlite-autoconf-3290000.tar.gz
$ tar zxvf ./sqlite-autoconf-3290000.tar.gz
$ cd ./sqlite-autoconf-3290000
$ ./configure --prefix=/usr/local
$ make
$ make install
$ cd ..
$ rm -rf ./sqlite-autoconf-3290000 ./sqlite-autoconf-3290000.tar.gz
$ mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
$ ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
$ echo 'export LD_LIBRARY_PATH="/usr/local/lib"' >> ~/.bashrc
$ source ~/.bashrc

장고의 가상 서버에 연결



/home/vagrant/work 아래에 프로젝트를 만듭니다.
Vagrantfile에서 설정했으므로 여기에 만든 파일과 앱이 로컬 및 가상 환경에서 공유됩니다.

※확인(Vagrantfile)
config.vm.synced_folder "./", "/home/vagrant/work"

장고 프로젝트 만들기
$ cd /home/vagrant/work
$ django-admin startproject mysite # mysiteはお好みのプロジェクト名で
$ cd mysite # プロジェクト内へ移動
$ python manage.py runserver 0:8000 # サーバ起動

그리고는 htp://127.0.0.1:8000 를 브라우저에 넣으면 페이지가 열립니다!



후기



처음에는 서버가 시작되었지만 브라우저에서 아무 것도 볼 수 없었고 상당히 번거로웠습니다. 어떻게든 자력으로 해결할 수 있어서 좋았습니다.
하지만, 해왔다 느낌은 있지만 어디는 어디까지나 준비 단계. 응용 프로그램을 완성 할 때까지 길은 멀 것 같습니다.

참고



Vagrant에서 Django 설치까지 일반 :
Vagrant+Python3+Django 환경에서 HelloWorld

SQLite3 버전 업 :
장고 입문 (튜토리얼) - 토호호의 WWW 입문

파이썬 설치 및 관리:
pyenv를 사용한 Python3 설치

좋은 웹페이지 즐겨찾기