[Django]Python 가상환경 만들기 / Django 설치
가상환경을 사용하는 이유
"독립적인 작업환경에서 작업이 가능하다"
프로젝트를 진행하다보면 여러 라이브러리와 패키지를 다운받아서 사용할 경우에 의존성에 문제가 생겨 충돌이 되는 경우가 생기게 된다. 또는 특정 라이브러리는 하위 버전만 지원하는 경우가 있다. 이러한 경우에는 버전을 여러개 그리고 독립적인 작업환경을 구성할 수 있는 venv 환경을 이용함으로써 해결할 수 있다.
먼저 파이썬에는 프로젝트별로 독립된 가상 환경을 만들어주는 virtualenv 라는 툴이 있다. 이를 설치하여 가상환경을 구성할 수 있다.
(가상환경을 구성하기 전에 python 설치는 선행되어야 한다.)
가상환경을 위한 virtualenv 설치
$ sudo pip install virtualenv
venv 생성하기
$ virtualenv venv(가상환경명) --python=python3.7
# 원하는 버전명을 입력하여 가상환경을 생성할 수 있다.
가상환경 사용하기
$ source venv/bin/acitve
위의 명령을 이용하여 생성한 가상환경을 이용할 수 있다. (venv) username$ 와 같이 나오면 가상환경에 진입되었음을 알 수 있다.
가상환경에서 빠져나오기
$ deactivate
# (venv) 환경에서 빠져나올 수 있다.
장고와 같은 프레임워크도 위와 같은 이유로 가상환경에 설치하여 이용하는 것을 권장한다. venv 환경이 구축되었다면 해당 가상환경에 장고를 설치하여 이용하면 된다.
장고 설치하기
(venv) $ pip install django
pip를 활용하여 간편하게 장고 프레임워크를 가상환경에 설치할 수 있다.
장고 설치 확인
(venv) $ python -m django --version
위 명령을 수행했을때 "no module named django" 와 같은 오류가 나오면 장고가 정상적으로 설치되지 않은 것이고,
장고의 버전이 출력되면 정상적으로 설치되었음을 알 수 있다.
나의 경우에는 컴퓨터에 설치된 파이썬의 버전과 가상환경의 버전이 다르게 설정되었을때 권한이나 파이썬 path를 불러오는 부분에서 오류가 나서 재설정을 하게 되었다. 각 컴퓨터의 default python version 설정을 주의해야한다.
(컴퓨터의 default 파이썬 버전 2.7 / 가상환경의 파이썬 버전 3.6) -> 이처럼 진행했을때 오류가 발생하였다.
장고 프로젝트 생성하기
(venv) $ django-admin startproject 프로젝트명
위의 명령을 입력하게 되면 빠르게 프로젝트를 생성할 수 있다.
장고 프로젝트 default 구조
장고 프로젝트의 default 구조
서버 가동하기
(venv) $ python manage.py runserver
# 0:8080 (포트를 지정하여 실행도 가능함)
장고 서버 구동
성공적으로 진행하였다면 127.0.0.1:8000 에 접속하여 위와 같은 장고 기본 화면을 볼 수 있게 된다. (8000은 장고 기본 포트이다)
다음 포스팅에는 Django & Nginx & Gunicorn 을 서로 연동하여 장고에서 기본제공하는 서버를 대체하는 작업을 해볼 것이다.
출처 : https://leffept.tistory.com/280?category=950490
'Python > Django' 카테고리의 다른 글
[Django, Vue]Django + Vue 연동하기 1 - Front end (0) | 2021.11.26 |
---|---|
[Django]REST API CRUD Server 만들기 2 - DRF (0) | 2021.11.26 |
[Django]REST API CRUD Server 만들기 1 - DRF (0) | 2021.11.26 |
[Django]Django + Nginx + Gunicorn 연동하기 2 (0) | 2021.11.26 |
[Django] 각종 유용한 패키지 (0) | 2021.04.29 |
[Django] 08.관리자 폼 커스터마이징 (0) | 2021.04.29 |
[Django] 07.스타일시트와 이미지 추가 (0) | 2021.04.29 |
[Django] 06.자동화된 테스트 (0) | 2021.04.29 |