윈도우 7에서 virtualenv 사용 시 주의사항

윈도우 7에서 virtualenv 사용 시 주의사항

윈도우 7에서 Python virtualenv로 ‘myvirtualenv’을 생성했다고 하자. myvirtualenv에서 Django 프로젝트의 생성은 상관없으나, App 생성과 DB Migration, runserver 명령어 실행 시 항상 python을 앞에 붙여야 한다. 그렇지 않을 경우 myvirtualenv가 아닌 기본 환경을 이용하여 실행하게 되므로 주의하자.

django-admin startproject myproject
python manage.py startapp myapp
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver 0.0.0.0:8000
python manage.py makemigrations
python manage.py migrate myapp 0001
cs

실행환경 및 결과 비교

기본 환경과 myvirtualenv 환경 간의 path와 pip list를 확인해 보고, migrate와 runserver 실행 결과를 비교해 봤다.

path 비교

기본환경

[root@C:UsersUSER]#echo %PATH%
(이전 생략) ;C:Python27;C:Python27Scripts; (이하 생략)
[root@C:UsersUSER]#
cs

myvirtualenv 환경

(myvirtualenv) [root@C:worksmyproject]#echo %PATH%
C:virtualenvmyvirtualenvScripts; (중간 생략) ;C:Python27;C:Python27Scripts; (이하 생략)
(myvirtualenv) [root@C:worksmyproject]#
cs

myvirtualenv 환경에서는 vritualenv의 Scripts 경로가 먼저 적용되도록 되어 있는데, 왜 그런지 잘 모르겠다.

pip list 비교

기본환경

[root@C:]#pip list
django (1.7.11)
MySQL-python (1.2.5)
pip (8.1.2)
setuptools (1.1)
south (1.0.2)
virtualenv (15.0.2)
[root@C:]#
cs

myvirtualenv 환경

(myvirtualenv) [root@C:worksmyproject]#pip list
Django (1.9.7)
django-el-pagination (2.1.2)
pip (8.1.2)
setuptools (24.0.1)
unicodecsv (0.14.1)
wheel (0.29.0)
(myvirtualenv) [root@C:worksmyproject]#
cs

myvirtualenv에서 migrate 실행 결과 비교

myvirtualenv 환경에서 python을 붙이지 않는 경우, django 1.7 버전에서 실행된다.

(myvirtualenv) [root@C:worksmyproject]#manage.py migrate
Operations to perform:
  Apply all migrations: admin, contenttypes, auth, sessions
Running migrations:
  Applying contenttypes.0001_initial… OK
  Applying auth.0001_initial… OK
  Applying admin.0001_initial… OK
  Applying sessions.0001_initial… OK
(myvirtualenv) [root@C:worksmyproject]#
cs

myvirtualenv 환경에서 python을 붙이면, django 1.9 버전에서 실행된다.

(myvirtualenv) [root@C:worksmyproject]#python manage.py migrate
Operations to perform:
  Apply all migrations: admin, contenttypes, auth, sessions
Running migrations:
  Rendering model states… DONE
  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 sessions.0001_initial… OK
(myvirtualenv) [root@C:worksmyproject]#
cs

runserver 실행 비교

myvirtualenv 환경에서 python을 붙이지 않는 경우, django 1.7 버전에서 실행된다.

(myvirtualenv) [root@C:worksmyproject]#manage.py runserver
Performing system checks…
System check identified no issues (0 silenced).
July 122016  12:36:07
Django version 1.7.11, using settings ‘myproject.settings’
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRLBREAK.
(myvirtualenv) [root@C:worksmyproject]#
cs

myvirtualenv 환경에서 python을 붙이면, django 1.9 버전에서 실행된다.

(myvirtualenv) [root@C:worksmyproject]#python manage.py runserver 0.0.0.0:8000
Performing system checks…
System check identified no issues (0 silenced).
July 072016  13:47:55
Django version 1.9.7, using settings ‘myproject.settings’
Starting development server at http://0.0.0.0:8000/
Quit the server with CTRLBREAK.
(myvirtualenv) [root@C:worksmyproject]#
cs

참고. 실행환경

– OS : Windows 7 Professional K

– Python : v 2.7.5

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤