윈도우 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:\Users\USER]#echo %PATH%
(이전 생략) ;C:\Python27;C:\Python27\Scripts; (이하 생략)
 
[root@C:\Users\USER]#
 
 
cs


myvirtualenv 환경

 
(myvirtualenv) [root@C:\works\myproject]#echo %PATH%
C:\virtualenv\myvirtualenv\Scripts; (중간 생략) ;C:\Python27;C:\Python27\Scripts; (이하 생략)
 
 
(myvirtualenv) [root@C:\works\myproject]#
 
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:\works\myproject]#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:\works\myproject]#
cs


myvirtualenv에서 migrate 실행 결과 비교

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

(myvirtualenv) [root@C:\works\myproject]#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:\works\myproject]#
cs


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

(myvirtualenv) [root@C:\works\myproject]#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:\works\myproject]#
cs


runserver 실행 비교

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

(myvirtualenv) [root@C:\works\myproject]#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 CTRL-BREAK.
 
(myvirtualenv) [root@C:\works\myproject]#
cs


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

(myvirtualenv) [root@C:\works\myproject]#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 CTRL-BREAK.
 
(myvirtualenv) [root@C:\works\myproject]#
cs


참고. 실행환경

  - OS : Windows 7 Professional K

  - Python : v 2.7.5



댓글 쓰기

0 댓글