본문 바로가기
개발(Development)/Python(파이썬)

[파이썬/장고] 맥(Mac) 파이썬 장고 가상환경 생성/설정

by 카레유 2020. 9. 18.

- Mac OS Python Django Virtual Environment Setting

 

# 파이썬 가상환경이란?

: 프로젝트 별로 따로 모듈 및 버전 관리를 할 수 있게 해주는 (가상의) 독립공간입니다.

 

https://django-easy-tutorial.blogspot.com/2015/08/python-virtual-environment-setup-in-ubuntu.html

 

그림의 맨 위 모습처럼, 프로젝트마다 각기 다른 종류/버전의 패키지를 사용할 수 있게 되는 것입니다.

만약 모든 프로젝트가 동일한 모듈과 버전을 사용해야한다면, 관리가 상당히 까다로워질 수 있습니다.


# 가상환경에서 장고프로젝트 시작하기

: 터미널을 통해 1)가상환경을 생성하고, 2) 장고를 설치하고, 3) 프로젝트를 생성하고, 4) 서버를 구동합니다.

 

작업 순서
1. 파이썬 버전 확인
2. 루트 디렉터리 생성
3. 가상환경 생성
4. 가상환경 활성화
5. 장고 설치(in 가상환경)
6. 장고 프로젝트 생성(in 가상환경)
7. 서버 구동/종료
8. 언어, 시간 설정

 


1. 파이썬 버전 확인

: 터미널을 열고, 파이썬 버전을 체크합니다(필수X)

 

# 파이썬 버전 체크 : “python —version”

$ python --version
Python 3.7.3

* 이 포스팅은 파이썬 3.3 이상을 전제로 진행합니다.


2. 루트 디렉터리 생성

: 관리의 편의성을 위해 별도 폴더를 생성합니다.(필수X)

 

# 디렉터리 생성 : “mkdir 디렉터리명”

$ mkdir DjangoProjects

 

# 디렉터리 확인 : “ls”

$ ls
DjangoProjects

 

# 디렉터리 진입 : “cd 디렉터리명”

$ cd DjangoProjects

3. 가상환경 생성

: 파이썬 모듈 venv를 사용하여 가상환경을 생성합니다.

 

# 가상환경 생성 : “python -m venv 가상환경명”

DjangoProjects$ python -m venv venv_web

* ‘venv_web’이라는 가상환경이 생성됩니다.(이름은 마음대로 지어도 됩니다)

 

# 가상환경 디렉터리 생성 확인: “ls”

DjangoProjects$ ls
venv_web

* ‘venv_web’ 으로 디렉터리가 생성된 것을 확인할 수 있습니다.

 

# 가상환경 디렉터리 진입 : “cd 디렉터리명”

DjangoProjects$ cd venv_web

 

# 가상환경 디렉터리 내부 확인 : “ls”

venv_web$ ls
bin   include   lib   pyvenv.cfg

* bin과 같은 폴더와 pyvenv.cfg 같은 파일이 생성되었으면 성공입니다.


4. 가상환경 활성화

: ‘가상환경/bin’폴더에 있는 ‘activate’ 명령어를 실행하여 가상환경을 활성화 합니다.

 

# bin 폴더 진입 : “cd bin”

:venv_web$ cd bin

 

# bin 폴더 내용 확인 : “ls”

:bin$ ls
activate   easy_install-3.7   python  activate.csh   pip   python3   activate.fish   pip3   easy_install   pip3.7

 

# activate 명령어 실행 : “source ./activate”

:bin$ source ./activate
(venv_web) :bin$ 

* 성공적으로 가상환경이 활성화되면, 프롬프트 앞에 (가상환경명)이 표시됩니다.

* bin 폴더에 진입하지 않고, 바로 “source ./bin/activate” 등의 명령어를 실행해도 됩니다.

* 가상환경을 비활성화 하려면 “deactivate” 명령을 실행합니다.


5. 장고 설치(in 가상환경)

: pip install 을 통해 장고를 설치합니다.(가상환경이 활성화된 상태에서 설치)

 

# 장고 설치 : “pip instal django”

(venv_web) :DjangoProjects$ pip install django

Collecting django

  Downloading https://files.pythonhosted.org/packages/01/a5/fb3dad18422fcd4241d18460a1fe17542bfdeadcf74e3861d1a2dfc9e459/Django-3.1.1-py3-none-any.whl (7.8MB)

    100% |████████████████████████████████| 7.8MB 354kB/s 

Collecting pytz (from django)

  Using cached https://files.pythonhosted.org/packages/4f/a4/879454d49688e2fad93e59d7d4efda580b783c745fd2ec2a3adf87b0808d/pytz-2020.1-py2.py3-none-any.whl

Collecting sqlparse>=0.2.2 (from django)

  Downloading https://files.pythonhosted.org/packages/85/ee/6e821932f413a5c4b76be9c5936e313e4fc626b33f16e027866e1d60f588/sqlparse-0.3.1-py2.py3-none-any.whl (40kB)

    100% |████████████████████████████████| 40kB 298kB/s 

Collecting asgiref~=3.2.10 (from django)

  Downloading https://files.pythonhosted.org/packages/d5/eb/64725b25f991010307fd18a9e0c1f0e6dff2f03622fc4bcbcdb2244f60d6/asgiref-3.2.10-py3-none-any.whl

Installing collected packages: pytz, sqlparse, asgiref, django

Successfully installed asgiref-3.2.10 django-3.1.1 pytz-2020.1 sqlparse-0.3.1

You are using pip version 19.0.3, however version 20.2.3 is available.

You should consider upgrading via the 'pip install --upgrade pip' command.

* Successfully installed 가 뜨면 성공입니다.

* 그 밑에 “pip 업그레이드”를 권유하는 코멘트가 떴습니다.

 

# pip 최신 버전 설치(필수 X) : “python -m pip install --upgrade pip”

(venv_web) :DjangoProjects$ python -m pip install --upgrade pip

Collecting pip

  Downloading https://files.pythonhosted.org/packages/4e/5f/528232275f6509b1fff703c9280e58951a81abe24640905de621c9f81839/pip-20.2.3-py2.py3-none-any.whl (1.5MB)

    100% |████████████████████████████████| 1.5MB 7.9MB/s 

Installing collected packages: pip

  Found existing installation: pip 19.0.3

    Uninstalling pip-19.0.3:

      Successfully uninstalled pip-19.0.3

Successfully installed pip-20.2.3

* pip 버전이 19.0.3 이었는데, 20.2.3으로 업그레이드 되었습니다.

 

# 장고 버전 확인 : python -m django --version

(venv_web) :DjangoProjects$ python -m django --version
3.1.1

* 장고 버전이 뜨면 성공입니다.


6. 장고 프로젝트 생성(in 가상환경)

: 웹프로젝트를 생성할 디렉터리를 만들고, 장고 프레임워크를 설정합니다.

 

# 루트 디렉터리로 이동(필수X) : “cd 루트디렉터리”

(venv_web) :dev$ cd DjangoProjects/

* 순서2(루트디렉터리 생성)에서 만든 디렉터리로 이동했습니다.

 

# 프로젝트 디렉토리 생성 : “mkdir 프로젝트명”

(venv_web) :DjangoProjects$ mkdir mysite

 

# 프로젝트 디렉토리 진입 : “cd 프로젝트명”

(venv_web) :DjangoProjects$ cd mysite

 

# 장고 프로젝트 설정(로드) : “django-admin startproject config .”

: 현재 디렉터리를 장고 프로젝트로 설정하고, 필요한 설정 파일을 config 폴더에 설치합니다.

(venv_web) :mysite$ django-admin startproject config .

* 마침표( . )는 현재 디렉터리를 장고 프로젝트로 설정하는 옵션입니다.

* 폴더명은 config 말고, 마음대로 지어도 됩니다

 

# 프로젝트 내부 확인 : “ls”

(venv_web) :mysite$ ls
config manage.py

* config 폴더와 manage.py 파일이 생성되었다면 성공입니다.

 

# config 폴더 진입 : “cd config”

(venv_web) :mysite$ cd config

 

# config 폴더 내부 확인 : “ls”

(venv_web) :config$ ls
__init__.py   asgi.py   settings.py   urls.py   wsgi.py

* settings.py 등 장고 관련 파일이 생성되었다면 성공입니다.


7. 서버 구동

:  manage.py를 실행하여 서버를 구동합니다.

 

# 프로젝트 폴더(mysite)로 이동 : “cd ..”

(venv_web):config$ cd ..

 

# 서버 구동 : “python manage.py runserver”

(venv_web):mysite$ python manage.py runserver

Watching for file changes with StatReloader

Performing system checks...

 

System check identified no issues (0 silenced).

 

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.

Run 'python manage.py migrate' to apply them.

September 18, 2020 - 09:16:29

Django version 3.1.1, using settings 'config.settings'

Starting development server at http://127.0.0.1:8000/

Quit the server with CONTROL-C.

* 위와 같은 메시지가 뜨면 성공입니다.

* Control + C 를 누르면 서버를 중단시킬 수 있습니다.

 

# 서버 구동 확인 : 브라우저에서 “http://127.0.0.1:8000/” 주소로 이동합니다.

장고 서버 구동 화면_언어/시간대 미설정

* 위와 같은 화면이 노출되면 성공입니다.

* http://localhost:8000/ 주소로 이동해도 동일합니다.


8. 언어, 시간 설정

: settings.py 파일에서 언어코드와 시간존을 변경합니다.

 

# IDLE로 settings.py 파일 열기

1) Spoghtlight(control+spacebar) 에서 “IDLE”검색

 

2) File>Open(Command+O) 에서 settings.py 파일 열기

* mysite/config/settings.py 경로에 있습니다.

 

 

# settings.py 파일 수정 : 가장 하단의 LANGUAGE_CODE, TIME_ZONE을 변경합니다.

settings.py 파일

(기존) settings.py 

LANGUAGE_CODE = ‘us-en'

TIME_ZONE = 'UTC'

(변경) settings.py 

LANGUAGE_CODE = ‘ko-kr'

TIME_ZONE = 'Asia/Seoul'

* us-en으로 설정된 언어코드는 ko-kr로 변경합니다.

* UTC로 설정된 타임존은 Asia/Seoul로 변경합니다.

 

# 브라우저 재확인 : 브라우저에서 “http://127.0.0.1:8000/” 주소를 다시 방문합니다.

장고 서버 구동 화면_언어/시간대 설정 완료

* 한글로 표시가 된다면, 성공입니다!!!


# 파이썬 가상환경 생성, 장고 설치, 프로젝트 생성, 서버 구동을 완료했습니다!!!

(서버 종료는 터미널에서 Control+C 를 누르면 됩니다.)


# (참고) mysite 프로젝트의 구조.

장고 프로젝트 구조

 

댓글