소행성이야기

python3 가상환경(Virtual environment) 설치

소행성왕자 2018. 7. 13. 14:19

python3 가상환경(Virtual environment) 설치


Virtualenv는 프로젝트 기초 전부를 Python/Django와 분리해줍니다.

웹사이트가 변경되어도 개발 중인 것에 영향을 미치지 않는다는 것입니다.


virtualenv를 만드는 데 필요한 것은 생성할 곳을 정하는 것뿐입니다.

예를 들면, home 디렉토리와 같은 곳이면 적당합니다. 


여기서는 home/naya/django 라는 디렉토리를 사용하도록 하겠습니다.


1
2
3
$ mkdir django
 
$ cd django
cs


이제 myenv 라는 이름의 가상환경을 만들어 보겠습니다.

아래와 같은 형식의 명령을 실행하세요.


1
$ python3.6 -m venv myvenv
cs


그러면 myvenv 와 myvenv 하위 디렉토리가 생성됩니다.

그리고 그 디렉토리에 우리가 사용할 가상환경이 들어있습니다.


1
2
3
4
5
6
myvenv
    bin
    include
    lib
    lib64 -> lib
    pyvenv.cfg
cs


아래 명령어를 입력해 가상환경을 실행합니다.

1
2
3
$ source myvenv/bin/activate
 
$ . myvenv/bin/activate
cs


그러면 콘솔 앞에 아래와 같이  보여지게 됩니다.

그러면 virtualenv가 시작되었음을 알 수 있습니다.


1
(myvenv) [@localhost django]
cs


가상환경에서 작업 할 때 python은 자동으로 올바른 버전을 참조하므로 python3.6 대신python를 사용할 수 있습니다.

의존성 설치를 모두 마쳤으니, 지금부터 장고를 설치할 수 있습니다!

장고를 설치하는 데 필요한 pip이 최신 버전인지 확인합니다.


1
$ python -m pip install --upgrade pip
cs


그런 다음 pip 이용해 장고를 설치해봅시다. 


1
(myvenv) ~$ pip install django
cs



이제부터 장고 프로젝트를 시작하는 겁니다.

다시 말해 장고의 기본 골격을 만들어주는 스크립트를 실행할 거지요.

이 디렉토리와 파일 묶음은 나중에 사용하게 됩니다.

장고에서는 디렉토리와 파일명이 매우 중요하답니다.

파일명을 마음대로 변경해서도 안되고 다른 곳으로 옮겨도 안됩니다.

장고는 중요한 것들을 찾을 수 있게 특정한 구조를 유지해야 합니다.


1
(myvenv) [@localhost django]# django-admin startproject mysite
cs


django-admin.py은 스크립트로 디렉토리와 파일들을 생성합니다

스크립트 실행 후에는 아래와 같이 새로 만들어진 디렉토리 구조를 볼 수 있을 겁니다.


1
2
3
4
5
6
7
mysite
├───manage.py
└───mysite
        settings.py
        urls.py
        wsgi.py
        __init__.p
cs

manage.py는 스크립트인데 사이트 관리를 도와주는 역할을 합니다

이 스크립트로 다른 설치 작업 없이 컴퓨터에서 웹 서버를 시작할 수 있습니다.

settings.py는 웹사이트 설정이 있는 파일입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(myvenv) [@localhost mysite]# vi ./mysite/settings.py 
 
  
TIME_ZONE = 'Asia/Seoul'

STATIC_URL = '/static/' 
아래 추가 
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
 
ALLOWED_HOSTS = ['127.0.0.1']
 
 
cs


디폴트로 데이터베이스는 sqlite3 을 사용하도록 되어 있습니다.


1
2
3
4
5
6
7
8
9
10
11
DATABASES = {
 
    'default': {
 
        'ENGINE''django.db.backends.sqlite3',
 
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
 
    }
 
}
cs


이제 데이터베이스를 생성해볼께요. 정상적으로 생성되었으면 아래와같은 메세지를 보시게 될겁니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(myvenv) [@localhost mysite]# python manage.py migrate
 
 
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying sessions.0001_initial... OK
cs


이제 웹 서버를 시작해 웹 사이트가 잘 작동하는지 확인해 보도록 하겠습니다.

1
(myvenv) [root@localhost mysite]# python manage.py runserver 192.168.0.38:8000
cs


웹브라우져이서  192.168.0.38:8000 접속하면 그림1 과 같이 볼수 있습니다.