[패스트캠퍼스python] 은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다의 윈도우7해결, DB관리

파이썬 인강 자기계발 챌린지 29회차 미션

아래는 강사님이 python3 manage.py makemigrations명령어를 입력하고 난 뒤의 터미널 출력모습이다.

강사님 터미널

그리고 아래 이미지는 내 터미널에서 출력한 모습이다.

그대로 따라한 내 터미널

내가 뭐 터미널에 치는 코드들이 툭하면 자꾸 은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.라는 출력이 떴다.

너무나 빡쳐!!!!

빡치고있는 와중에 구글링해보니 위의 에러는 환경변수에 의해 발생하는 에러라고 한다.
내가 컴퓨터가 두대가 있는데 하나는 윈도우 10을 쓰지만 다른 하나는 윈도우 7를 쓴다.
그래서 두 OS에 python과 vscode 그리고 가상환경을 사용할 수 있는 환경변수 설정방법을 기록하려고 한다

1. python과 vscode 그리고 가상환경을 사용할 수 있는 환경변수 설정방법

1. 윈도우10 환경변수

window키를 누르고 검색창에 고급 시스템 설정 보기를 검색한다. 띄어쓰기에 유의하자.

윈도우10의 환경변수창

윈도우 10의 경우 환경변수를 추가할 수 있게끔 예쁜 GUI가 나온다.
새로만들기를 클릭하고 아래를 추가해준다

  • 변수 값 : C:\Users\파이썬저장한경로\Python\Python38\Scripts;

위의 값은 파이썬에서 가상환경을 사용하기 위한 내용이다.
이 밖에도 python과 vscode를 추가해주면 되는데 사실 프로그램을 다운로드할때 자동적으로 추가가되어있을 것이다.
깔끔하게 해결!!

2. 윈도우7 환경변수 설정

하지만 윈도우7의 경우는 거지같이 나온다.
일단 환경변수 설정에 들어가보자.
window키를 누르고 검색창에 고급 시스템 설정 보기를 똑같이 검색한다. 띄어쓰기에 유의하자.

윈도우 7의 환경변수창

새로만들기를 클릭하고 아래 값을 그대로 입력했다

  • 변수이름 : path
  • 변수 값 : C:\Users\파이썬저장한경로\Python\Python38\Scripts;

왜지? 윈도우10은 리스트에 추가된 행이 바로 나오는데 윈도우7은 전혀 그런게 보이지않았다.
내가 잘못했나?
다시 path의 값 전체를 삭제하고 파이썬의 가상환경을 사용하기위해서 아래를 입력했다.
꼭 자신이 파이썬과 vs code, 가상환경을 다운로드한 경로를 지정해야한다.
C:\Users\파이썬저장한경로\Python\Python38\Scripts\;를 붙여넣었다.

3. 설치위치 찾기

만약 python과 vs code, 가상환경을 어디 설치했는지 경로를 모르겠다면?
걱정 할 필요없다!
window에서 모든 프로그램을 클릭한 후 python을 찾은 뒤 우클릭한다.
그리고 속성을 클릭하면 대상에 경로가 설정되어있다.
그 경로 그대로 복붙하면 된다!

윈도우 7의 환경변수창

그리고 새로만들기를 눌렀는데 아무런 변화가 없다?!?!
그래서 변경을 누르고 기존 path를 아예 삭제하고 다시 등록해보았다.
그.런.데.
알고보니 path의 기존경로는 절대 지우면 안되고 그 뒤에 세미콜론(;)으로 붙여서 입력해야한다는 것이다.
window의 기본 path는 건들면 절대 안된다고 한다!
나는 그것도 모르고… 이미 지워버렸다…
멘붕왔다가 잠시 진정하고 다시 환경변수 기본값을 찾는 여정부터 이어나갔다.

4. 환경변수 기본값 찾기

환경변수의 기본값은 찾는 방법은 아래와 같다.
cmd를 열고 regedit명령어를 입력한다.
레지스트리편집기가 자동으로 open될텐데 아래 위치로 찾아간다.

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Session Manager\Enviroment\Path

그리고 path를 더블클릭하면 변경되기전이 값이 저장되어있다.
복붙해서 환경변수에 한꺼번에 등록했다. 휴- 살았다!


2. Database관리

데이터베이스를 관리해보자.
데이터를 수정,추가한 경우에 항상 1번부터 2번까지 반복을 해주면 데이터베이스버전이 새로 생성되고 관리된다.

  1. python3 manage.py makemigrations명령어를 입력한다
    내 경우에는 ‘python3’은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는배치 파일이 아닙니다.에러가 사라지지않았다…
    하지만 python명령어는 위의 환경변수 세팅을 통해 잘되었으므로 3을 뺀 python manage.py makemigrations를 입력했다. 다행히 성공적으로 create model이 되었다.

  2. python3 manage.py migrate
    위와 마찬가지로 3을 뺀 뒤 실행했더니 잘 진행되었다.

1번과 2번을 통해 우리는 명령어 sqlite3 db.sqlite3등을 이용하여 직접 sqlite를 만질 필요가 없다. 왜냐면 장고가 다 알아서 데이터베이스의 테이블을 자동으로 생성해주기때문이다.

M계층 DB관리