전체 페이지뷰

2017년 1월 7일 토요일

개발 환경 정비하기

Django를 처음 시작할 때, Python과 Virtualenv, Django를 설치했습니다.
이제 다음의 개발을 위해 여러 필요한 패키지들을 더 설치해 보려고 합니다.



커맨드라인을 관리자 권한으로 실행하고, 먼저
pip --version 
해보았더니 pip버전이 그새 9.0.1로 올라갔습니다.
설명 나오는 대로 pip버전업부터 합니다.


가상환경 myvenv 구성

앞으로 블로그앱을 확장해서 태그, 댓글, 검색 등의 기능을 넣을 예정입니다.
이를 위해서 여러 패키지를 추가설치하려 합니다.
늘 하던대로 일단 가상환경을 실행합니다.

D:\myDjango>myvenv\Scripts\activate

지금 가상환경에 어떤 패키지들이 설치되어 있는지 먼저 보겠습니다.

(myvenv) D:\myDjango\myvenv\Lib\site-packages>dir/w

 D:\myDjango\myvenv\Lib\site-packages 디렉터리

[.]                            [..]                   [django]
[Django-1.10.3.dist-info]      easy_install.py        [pip]
[pip-9.0.1.dist-info]          [pkg_resources]        [pytz]
[pytz-2016.10.dist-info]       [setuptools]               [setuptools-20.10.1.dist-info] [__pycache__]


pytz 설치

글에 쓰진 않았지만 저는 이미 가상환경에 장고 말고도 pytz라는 툴을 설치했습니다.
블로그 개발 공부 당시 pytz를 설치해야 한다는 에러가 떠서 말이죠.

pytz는 타임존을 관리하는 패키지입니다. 장고는 다국어를 지원하므로 로컬 시간을 계산해야 합니다. 블로그에 글을 올릴 때 이미 시간 정보가 필요했습니다. 
설치는 간단합니다.

(myvenv) D:\myDjango> pip install pytz

해주면 됩니다.


django-tagging 설치

이름 그대로 블로그에 태그 기능을 제공하는 패키지입니다.

(myvenv) D:\myDjango>pip install django-tagging
을 입력하면 다음과 같은 메시지와 함께 설치됩니다.

Collecting django-tagging
  Downloading django_tagging-0.4.5-py2.py3-none-any.whl
Installing collected packages: django-tagging
Successfully installed django-tagging-0.4.5


django-disqus 설치

블로그 댓글 달기 기능을 위한 패키지입니다. 장고 1.6, 1.7에서는 장고 자체 기능으로 구현되어 있었으나 1.8부터 삭제되었고, 이에 따라 오픈 소스로 만들어진 것들 중 현재 대세로 자리 잡은 것이 dajngo-disqus입니다.

(myvenv) D:\myDjango>pip install django-disqus
을 입력하면 설치됩니다.

Collecting django-disqus
  Downloading django-disqus-0.5.tar.gz
Requirement already satisfied: Django>=1.4 in d:\mydjango\myvenv\lib\site-packages (from django-disqus)
Collecting mock>=1.0.1 (from django-disqus)
  Downloading mock-2.0.0-py2.py3-none-any.whl (56kB)
    100% |################################| 61kB 883kB/s
Collecting pbr>=0.11 (from mock>=1.0.1->django-disqus)
  Downloading pbr-1.10.0-py2.py3-none-any.whl (96kB)
    100% |################################| 102kB 1.9MB/s
Collecting six>=1.9 (from mock>=1.0.1->django-disqus)
  Downloading six-1.10.0-py2.py3-none-any.whl
Installing collected packages: pbr, six, mock, django-disqus
  Running setup.py install for django-disqus ... done
Successfully installed django-disqus-0.5 mock-2.0.0 pbr-1.10.0 six-1.10.0


Pillow 설치

향후 포토앱 개발시 이미지 처리를 위해 필요한 패키지입니다. 파이썬에서 제공하는 PIL은 장고 1.8부터 사용이 불가하므로  Pillow를 이용합니다.

(myvenv) D:\myDjango>pip install Pillow

역시 아래와 같이 설치됩니다.

Collecting Pillow
  Downloading Pillow-4.0.0-cp35-cp35m-win32.whl (1.3MB)
    100% |################################| 1.3MB 762kB/s
Collecting olefile (from Pillow)
  Downloading olefile-0.44.zip (74kB)
    100% |################################| 81kB 4.1MB/s
Installing collected packages: olefile, Pillow
  Running setup.py install for olefile ... done
Successfully installed Pillow-4.0.0 olefile-0.44


대략의 패키지 설치를 끝냈습니다. 더 필요한 것은 그때마다 추가하기로 하고,
설치된 목록을 한번 살펴봅니다.

(myvenv) D:\myDjango>pip list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
Django (1.10.3)
... 하략

pip list를 치니까 deprecation이 뜨네요. 출력 형식이 변경된 듯 합니다. 설명에 따라

(myvenv) D:\myDjango>pip list  --format=columns
해보니 출력 형식이 좀 더 보기 좋게 개선되었습니다.

Package              Version
--------------       -------
Django               1.10.3
django-disqus        0.5
django-tagging       0.4.5
mock                 2.0.0
olefile              0.44
pbr                  1.10.0
Pillow               4.0.0
pip                  9.0.1
pytz                 2016.10
setuptools           32.3.1
six                  1.10.0
wheel                0.29.0

과거의 방식은 이러합니다.

(myvenv) D:\myDjango>pip list  --format=legacy
Django (1.10.3)
django-disqus (0.5)
django-tagging (0.4.5)
mock (2.0.0)
olefile (0.44)
pbr (1.10.0)
Pillow (4.0.0)
pip (9.0.1)
pytz (2016.10)
setuptools (32.3.1)
six (1.10.0)
wheel (0.29.0)

좀 더 보기 좋게 바뀌었네요.

다음 공부에서는 지금 설치한 패키지의 기능들을 구현해보도록 하겠습니다.

댓글 없음:

댓글 쓰기