# 2. Web/Django

Django 가상환경 source 명령어 안먹힐 때

둥굴둥굴둥굴레차 2021. 10. 30. 14:09

상황

Vscode에서 가상 환경을 키려 아래의 명령어를 사용했다.

python -m venv venv

venv 파일이 만들어진 것을 확인했고, 가상 환경을 본격적으로 실행하려 아래의 명령어를 사용.

(powershell 환경이라 git bash환경에서 사용하는 source venv/Scripts/activate와는 조금 다르다.)

source venv/Scripts/Activate.ps1

 

그렇지만 가상환경은 켜지지 않았고, 아래의 에러를 볼 수 있었다. (powershell 환경에서 가상 환경 키려 했을 때)

source : 'source' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로 가 올바른지 검증한 다음 다시 시도하십시오. 위치 줄:1 문자:1 + source venv/Scripts/Activate.ps1 + ~~~~~~ + CategoryInfo : ObjectNotFound: (sourc e:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundExcepti on

혹은 아래의 에러를 볼 수 있다. (command prompt환경에서 가상환경을 키려 하였을 때)

'source'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.

[참고] prompt(프롬프트)란?

텍스트 기반의 환경에서, 각종 명령어를 입력하는 곳.
"prompt" 또는 "command prompt"라고 한다. 

 

해결

해당 에러는 현재 사용중인 powershell이 아닌 git bash를 사용해주면 해결된다.

즉, source는 bash의 내부 명령어기 때문에 잘 동작하지 않았다는 것을 알게 되었다.

 

[참고] 터미널별 가상환경 활성화 명령어

사실 위의 설명이 정확한건 아니다.

왜냐하면 각 터미널별로 어떻게 가상 환경을 열어야 하는지를 살펴보면 모두 source명령어를 포함하고 있기 때문이다.

  • Git Bash
    $ source [가상환경이름]\\Scripts\\activate
  • CMD
    $ source [가상 환경 이름]\\Scripts\\activate.bat
  • PowerShell
    $ source [가상 환경 이름]\\Scripts\\Activate.ps1
  • macOS
    $ source [가상 환경 이름]/bin/activate

음 그래서 일단은 source명령어가 잘 먹히지 않을 땐 bash 환경에서 다시 시도해보자 라고 기억해두려 한다.

아마 settings.json에서 세팅환경을 잘 맞추면 각 터미널 환경에서도 잘 작동하리라 예상한다.

근데 지금은 시간이 없으니 패스 😂

화살표를 눌러 Git Bash를 클릭!

 

결과

가상환경이 잘 켜진상태.