윈도우 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 12, 2016 - 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 07, 2016 - 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 댓글