Python venv 활성화 오류는 운영체제와 터미널에 맞는 명령어를 먼저 확인하면 대부분 원인을 좁힐 수 있습니다.
Python 가상환경을 만들었는데 활성화가 안 된다면 먼저 터미널 종류를 확인해야 합니다. Windows PowerShell, Windows CMD, Mac, Linux, WSL은 venv 활성화 명령어가 서로 다릅니다.
특히 아래 오류가 보이면 명령어를 잘못 입력했거나, PowerShell 실행 정책, 현재 폴더 위치, VSCode 터미널 경로가 맞지 않는 경우가 많습니다.
Activate.ps1 cannot be loaded because running scripts is disabled on this system.
running scripts is disabled on this system
command not found: activate
No such file or directory
source: no such file or directory: .venv/bin/activate
빠른 결론: 터미널별 venv 활성화 명령어
가장 먼저 아래 명령어 중 현재 사용하는 터미널에 맞는 것을 선택합니다. 같은 Windows라도 PowerShell과 CMD 명령어가 다릅니다.
# Windows PowerShell
.\.venv\Scripts\Activate.ps1
:: Windows CMD
.venv\Scripts\activate.bat
# Mac / Linux / WSL
source .venv/bin/activate
명령어를 실행한 뒤 터미널 앞에 (.venv)처럼 가상환경 이름이 보이면 활성화된 상태입니다. 표시가 없다면 현재 폴더와 가상환경 폴더 이름부터 다시 확인해야 합니다.
venv 활성화 오류가 나는 대표 상황
venv 활성화 오류는 Python 자체 문제보다 터미널과 경로 문제에서 자주 발생합니다. 아래 상황 중 하나에 해당하는지 먼저 확인해 보세요.
- Windows PowerShell에서
Activate.ps1실행이 정책상 막힌 경우 - CMD와 PowerShell 명령어를 서로 바꿔 입력한 경우
- Mac, Linux, WSL에서 Windows용 경로를 입력한 경우
.venv폴더가 현재 프로젝트 폴더에 없는 경우- VSCode 터미널이 프로젝트 폴더가 아닌 다른 위치에서 열려 있는 경우
- 가상환경을 만들지 않고
activate부터 실행한 경우
오류 메시지를 보기 전에 현재 터미널이 PowerShell인지 CMD인지, Mac 터미널인지, WSL인지부터 확인합니다. 같은 .venv라도 활성화 파일 위치와 실행 방식이 운영체제별로 다릅니다.
먼저 확인할 것: 현재 폴더와 .venv 폴더
venv 활성화 명령어는 현재 프로젝트 폴더를 기준으로 실행합니다. 터미널이 다른 폴더에서 열려 있으면 No such file or directory 또는 source: no such file or directory: .venv/bin/activate가 나올 수 있습니다.
Mac, Linux, WSL에서는 아래 명령어로 현재 위치와 폴더 목록을 확인합니다.
pwd
ls
Windows PowerShell에서는 아래 명령어를 사용합니다.
Get-Location
Get-ChildItem
목록에 .venv 또는 venv 폴더가 보이는지 확인합니다. 폴더 이름이 venv라면 명령어의 .venv 부분을 venv로 바꿔야 합니다.
venv가 없을 때 새로 만드는 방법
현재 폴더에 가상환경 폴더가 없다면 먼저 venv를 만들어야 합니다. 일반적으로 프로젝트 루트 폴더에서 아래 명령어를 실행합니다.
python -m venv .venv
Windows에서 python 명령어가 동작하지 않으면 py 명령어를 확인합니다.
py -m venv .venv
Mac이나 Linux에서 Python 3 명령어를 구분해서 써야 하는 환경이라면 아래처럼 실행합니다.
python3 -m venv .venv
생성 후에는 다시 현재 폴더 목록을 확인하고, 운영체제에 맞는 활성화 명령어를 실행합니다.
Windows PowerShell에서 Activate.ps1 오류 해결
Windows PowerShell에서는 아래 명령어로 venv를 활성화합니다.
.\.venv\Scripts\Activate.ps1
이때 아래 오류가 나오면 PowerShell 실행 정책 문제일 수 있습니다.
Activate.ps1 cannot be loaded because running scripts is disabled on this system.
또는 오류 메시지 안에 아래 문구가 포함될 수 있습니다.
running scripts is disabled on this system
회사 PC나 보안 정책이 적용된 PC에서는 실행 정책 변경이 제한될 수 있습니다. 관리자 권한, 조직 보안 정책, 보안 프로그램 제한을 먼저 확인하는 것이 좋습니다.
현재 실행 정책은 아래 명령어로 확인합니다.
Get-ExecutionPolicy
개인 PC에서 현재 사용자 범위에만 적용하려면 아래 명령어를 사용할 수 있습니다. 시스템 전체가 아니라 현재 사용자 범위로 제한하는 방식입니다.
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
변경 후 PowerShell을 새로 열거나 같은 터미널에서 다시 아래 명령어를 실행합니다.
.\.venv\Scripts\Activate.ps1
Windows CMD에서 venv 활성화하는 방법
Windows CMD에서는 PowerShell용 Activate.ps1이 아니라 activate.bat을 사용합니다.
.venv\Scripts\activate.bat
CMD에서 .\.venv\Scripts\Activate.ps1을 실행하거나, PowerShell에서 .venv\Scripts\activate.bat을 실행하면 터미널 종류와 명령어가 섞여서 헷갈릴 수 있습니다.
명령어가 맞는데도 실행되지 않는다면 현재 폴더에 .venv 폴더가 있는지, 실제 폴더명이 venv인지 .venv인지부터 확인합니다.
Mac, Linux, WSL에서 command not found 해결
Mac, Linux, WSL에서는 아래 명령어로 venv를 활성화합니다.
source .venv/bin/activate
아래처럼 activate만 입력하면 오류가 날 수 있습니다.
activate
이 경우 자주 보이는 메시지는 다음과 같습니다.
command not found: activate
Mac이나 Linux에서 Windows PowerShell용 경로를 입력해도 정상적으로 동작하지 않습니다.
.venv\Scripts\Activate.ps1
source: no such file or directory: .venv/bin/activate가 나온다면 현재 폴더에 .venv가 없거나, 가상환경 이름이 다를 가능성이 큽니다. pwd와 ls로 현재 위치와 폴더명을 먼저 확인합니다.
VSCode 터미널에서 venv가 안 잡힐 때
VSCode에서는 터미널이 프로젝트 폴더가 아닌 다른 위치에서 열려 있거나, Python 인터프리터가 다른 환경으로 선택되어 있을 때 venv가 자동으로 잡히지 않을 수 있습니다.
- VSCode가 파일 하나가 아니라 프로젝트 폴더를 열었는지 확인합니다.
- 터미널에서 현재 위치를 확인합니다.
- 프로젝트 루트에
.venv폴더가 있는지 확인합니다. - Python 인터프리터가
.venv안의 Python으로 선택되어 있는지 확인합니다. - 터미널을 새로 열고 운영체제에 맞는 활성화 명령어를 다시 실행합니다.
VSCode에서 인터프리터 선택 자체가 꼬인 경우에는 Python 인터프리터가 VSCode에서 안 잡힐 때 점검 순서를 함께 확인하면 원인을 더 빠르게 좁힐 수 있습니다.
OS별 venv 활성화 명령어 표
Windows PowerShell, CMD, Mac, Linux, WSL에서 사용하는 Python venv 활성화 명령어를 비교한 이미지입니다.
아래 표는 가장 자주 쓰는 venv 활성화 명령어를 환경별로 정리한 것입니다. 오류 메시지를 보기 전에 먼저 터미널 종류와 명령어가 맞는지 확인합니다.
| 환경 | 활성화 명령어 | 자주 나는 오류 |
|---|---|---|
| Windows PowerShell | .\.venv\Scripts\Activate.ps1 |
execution policy |
| Windows CMD | .venv\Scripts\activate.bat |
명령어 혼동 |
| Mac / Linux / WSL | source .venv/bin/activate |
command not found |
venv 비활성화 방법
가상환경을 끄는 명령어는 운영체제와 관계없이 보통 아래 명령어를 사용합니다.
deactivate
터미널 앞에 표시되던 (.venv)가 사라지면 비활성화된 상태입니다. 비활성화는 가상환경 폴더를 삭제하는 명령어가 아니라, 현재 터미널 세션에서 venv 사용을 종료하는 명령어입니다.
재발 방지 체크리스트
venv 활성화 오류는 한 번 해결해도 새 프로젝트나 새 터미널에서 다시 생길 수 있습니다. 아래 기준을 정해 두면 같은 오류를 줄일 수 있습니다.
- 프로젝트마다 가상환경 폴더 이름을
.venv로 통일합니다. - VSCode는 파일 하나가 아니라 프로젝트 루트 폴더로 엽니다.
- Windows에서는 PowerShell과 CMD 명령어를 구분합니다.
- Mac, Linux, WSL에서는
source .venv/bin/activate를 사용합니다. - 가상환경을 만들기 전 activate 명령어부터 실행하지 않습니다.
- 회사 PC에서는 PowerShell 실행 정책 변경 전 보안 정책을 확인합니다.
Python 환경을 venv로 계속 쓸지, conda나 uv까지 함께 볼지는 프로젝트 성격에 따라 달라질 수 있습니다. 환경 관리 도구 선택이 고민된다면 Python 개발환경 2026 pyenv·conda·uv 비교를 참고해 전체 흐름을 정리하는 것이 좋습니다.
Mac에서 python, python3, pip, brew 경로가 계속 꼬인다면 Homebrew·pyenv·nvm PATH 꼬였을 때 zshrc 수정 순서를 함께 확인하면 좋습니다.
공식 자료로 더 확인하기
venv 생성 방식, PowerShell 실행 정책, VSCode Python 환경 선택 방식은 공식 문서에서 기준을 다시 확인할 수 있습니다.
Python venv와 터미널 실행 정책은 공식 문서를 기준으로 확인하는 것이 좋습니다.
자주 묻는 질문
정리
Python venv 활성화 오류는 대부분 운영체제와 터미널에 맞지 않는 명령어, 현재 폴더 위치, PowerShell 실행 정책, VSCode 인터프리터 선택 문제에서 시작합니다. 먼저 현재 터미널을 확인하고, 그다음 .venv 폴더 위치와 활성화 명령어를 순서대로 점검하면 원인을 빠르게 줄일 수 있습니다.
venv 활성화가 안 될 때는 터미널 종류, 현재 폴더, 가상환경 폴더명, 실행 정책을 차례대로 확인하는 것이 핵심입니다.
댓글